Как работает инициализация опций в плагине?

Вот опять двадцать пять 😀 Ничего уже не помню, а ведь даже сделал несколько плагинов.

Не могу понять хоть убейте, как происходит инициализация плагина при нажатии на кнопку "активировать".

Что меня интересует имеено?

Вот возьмём кусок самого начала моего плага

// добавляем опции
 j_extred_ops();

function j_extred_ops() {
    $all_opt = array(
        'jex_excerpt'            => TRUE,
        'jex_content'             => TRUE,
        'jex_comment'             => TRUE,
 ...

add_option('plugin_j_extred', $all_opt, '(J)ExR Options');
}

Так вот я что-то не пойму, получается, что каждый раз и постоянно пихаются опции. И это круговой процесс, при активированном плагине? Или я чего-то не догоню.

полазив, нашёл:

register_activation_hook(__FILE__,'jal_install');

Но это используется только при создании таблиц в БД. А почему с опциями этот хук не используется? Я поглядел, ни в одном плагине не используется для опций. Получается он постоянно вызывает add_option и так сказать маслает по кругу? А как же update_option? Ведь update_option всегда идёт с каким-то условием, а add_option тупо висит вверху и постоянно запускается.

Растолкуйте, не пойму…

register_activation_hook выполняется при активации плагина, раньше по моему его небыло, рекоммендую использовать его, и update_option чтобы не плодить однотипные даннык.

Ну дык а почему же если рекомендуется использоваться этот хук, то во всех плагинах просто стоит запуск функции в которой add_option

Потому что:
A safe way of adding a named option/value pair to the options database table. It does nothing if the option already exists. After the option is saved, it can be accessed with get_option(), changed with update_option(), and deleted with delete_option().

И вот тут про активацию http://codex.wordpress.org/Plugin_API/Action_Reference/activate_(plugin_file_name)

Чтиво в тему http://habrahabr.ru/blogs/wordpress/48998/

Вот спасибо за ссылку на хабр… очень познавательно было. Только я так и не понял в очередной раз, нафига классы нужны. Зачем создавать класс из которого будут использоваться всего пару функций, да ещё и потом создавать его копию, да и смысл, если функции можно просто так запустить.

p.s. просто я часто встречаю, когда люди создают классы и как (пускай не важный, но однако же) кодер, я хочу понять, зачем они нужны. Я даже могу понять, что есть объет во Flash к примеру или на C++, но зачем на PHP создавать самому себе геморой в виде класса, когда можно просто использоваться функцию и всё, я так и не могу понять.

p.s.2. 🙁 но ведь зачем-то их используют

Хм… Либо Вас неправильно учили, либо давно, либо Вы вообще самоучка 😀 ООП – это круто! И всё тут.

IMHO совать ООП в каждую дырку – глупость. А на PHP – дважды глупость, если учесть, что у php4 и php5 разные объектные модели. Хотя действительно бывают случаи, когда объектная модель себя оправдывает.

Anonymous
Отправить
Ответ на: