Пользовательские среды FuelPHP

Я перемещаю существующее приложение FuelPHP в новую среду, и я достиг точки, когда я действительно мог бы добавить еще одну среду помимо 4 по умолчанию (т.е. разработка, тестирование, этап, производство), которые все уже в использовании в другом месте.

Есть ли достаточно простой способ добавления дополнительной среды в FuelPHP? Если есть, я был бы признателен за любое руководство о том, как это сделать.


person Nick F    schedule 05.04.2013    source источник


Ответы (1)


Да, это возможно, но это нигде не задокументировано, вот взломанный подход, который я нашел после просмотра вашей публикации.

Ниже приведены шаги для создания пользовательской среды в приложении FUel php.

например, вам нужно назвать вашу новую среду «экспериментом», а затем

1 . Создайте папку под названием Experiment в каталоге Fuel/App/config.

2 . создайте файл db.php внутри каталога fuel/app/config/experiment с содержимым ниже, вы можете добавить свою другую конфигурацию, но ниже приведены конфигурации БД по умолчанию (измените их в соответствии с вашей платформой), также другие файлы миграции могут быть скопированы в эту папку из других окружающая обстановка

return array(
    'default' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=yourappdatabasename',
            'username'   => 'yourDBuname',
            'password'   =>  'yourDBpassword',
        ),
    ),
);

3 . Затем измените имя env в файле Fuel/app/bootstrap.php.

Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::EXPERIMENT);

4 . Затем откройте файл Fuel/core/classes/Fuel.php и добавьте новую константу в класс Fuel, как показано ниже в верхней части класса, я думаю, вы могли бы найти другие среды, также объявленные там.

const EXPERIMENT = 'experiment';

И это все, что вы создали новую пользовательскую среду в приложении Fuel php,

ПРИМЕЧАНИЕ: - этот подход является взломанным подходом, нигде официально не задокументированным

Публикация здесь, надеясь, что это может помочь вам или другим людям с аналогичными требованиями

EDIT: - Это для версий > 1.5

Шаг 1 и шаг 2 одинаковы

3 . (Предполагая, что вы используете Apache) установите переменную сервера FUEL_ENV в новое имя среды, добавив следующую строку в конфигурацию VirtualHost:

SetEnv FUEL_ENV experiment

Вот и все (во всяком случае, на Apache). Нет необходимости добавлять константу в core/fuel.php (в соответствии с предопределенными средами). В этом нет необходимости, и это только затруднит обновление ядра Fuel.

person Aravind.HU    schedule 05.04.2013
comment
Нет причин для взлома. Начиная с версии 1.5, FuelPHP поддерживает неограниченное количество сред. Просто выберите любую строку, которая вам нравится. Константы класса Fuel предназначены только для удобства сравнения и используются внутри фреймворка. Они нигде не нужны для работы кастомной среды. На шаге 3 просто используйте «experiment» вместо константы. - person WanWizard; 11.04.2013
comment
и p.s. Никогда не меняйте код в ядре, у вас будет кошмар, когда вам нужно будет перейти на новую версию. Если вы чувствуете, что вам НЕОБХОДИМО что-то изменить, переопределите базовый класс в своем приложении и внесите изменения там. - person WanWizard; 11.04.2013
comment
@WanWizard Пожалуйста, поймите публикацию здесь, человек здесь уже использует все четыре определенные среды, и ему нужно добавить еще одну вместе с существующей, - person Aravind.HU; 11.04.2013
comment
@WanWizard Поскольку вы являетесь руководителем проекта FuelPHp, почему бы вам не опубликовать здесь ответ с правильными шагами, это действительно помогает другим, а также если я просто выберу строку своего желания и установлю на 3-м шаге, это выдает ошибку , И я использую версию меньше , чем 1.5 , а также человек здесь не указал ничего , связанного с версией FuelPHP . - person Aravind.HU; 11.04.2013
comment
Спасибо вам обоим и извините, что отвечаю медленно - я ждал возможности проверить это. @aravind.udayashankara: WanWizard прав, оказывается, вы можете использовать любое имя среды. Шаг, который вам не хватает, — это установить «FUEL_ENV» в вашем VirtualHost. Если вы не возражаете, я отредактирую ваш ответ, убрав ненужные шаги, а затем отмечу его как принятый. - person Nick F; 01.05.2013
comment
@Nick F Конечно, но просто упомяните версию, которую вы используете, решение, которое я опубликовал, стоит менее 1,5. - person Aravind.HU; 01.05.2013
comment
@NickF Я сам отредактировал сообщение, потому что ваше редактирование внесло много изменений в исходное сообщение, и оно также было отклонено модераторами. - person Aravind.HU; 01.05.2013