Как я настраиваю CakePHP для обнаружения моей разработки / продуктивные среды, или я просто не допускаю файлы конфигурации в управление версиями?

Нулевые ссылки должны быть удалены из языков OO

Исходя из Java и C # фона, где нормально возвращать нуль из метода, чтобы указать сбой, я пришел к сделать вывод, что нули вызывают много проблем, которых можно избежать. Разработчики языка могут удалить целый класс ошибок, связанных с исключениями NullRefernceExceptions, если они просто удаляют пустые ссылки из кода.

Кроме того, когда я вызываю метод, у меня нет возможности узнать, может ли этот метод вернуть нулевые ссылки, если я на самом деле не копаюсь в реализации. Я хотел бы, чтобы больше языков следовало модели F # для обработки нулей: F # не позволяет программистам возвращать нулевые ссылки (по крайней мере, для классов, скомпилированных в F #), вместо этого требуется, чтобы программисты представляли пустые объекты, используя типы option. Хорошая вещь в этом дизайне заключается в том, как полезная информация, например, может ли функция возвращать нулевые ссылки, распространяется через систему типов: функции, которые возвращают тип 'a, имеют тип возвращаемого значения, отличный от функций, которые возвращают 'a option.

8
задан Chuck Burgess 19 January 2013 в 20:01
поделиться

3 ответа

Если я правильно понял вопрос, это может быть то, что вам нужно:

Автоматический выбор соединений с базой данных в CakePHP

Вкратце, переопределите конструктор DATABASE_CONFIG :

class DATABASE_CONFIG
{
    //initalize variable as null
    var $default=null;

    //set up connection details to use in Live production server
    var $prod = 
        array(
            // ...
        );

    // and details to use on your local machine for testing and development
    var $dev = 
        array(
            // ...
        );

    function __construct ()
    {       
        if(isset($_SERVER['SERVER_NAME'])){
            switch($_SERVER['SERVER_NAME']){
                case 'digbiz.localhost':
                    $this->default = $this->dev;
                    break;
                case 'digbiz.example.com':
                    $this->default = $this->prod;
                    break;
            }
        }
        else // we are likely baking, use our local db
        {
            $this->default = $this->dev;
        }
    }
}
13
ответ дан 5 December 2019 в 06:54
поделиться

Для базы данных вы можете настроить параметры локального и производственного подключения, а затем создать файл app / app_model.php и включить строку:

class AppModel extends Model
{
  var $useDbConfig = 'production';
}

Затем вы можете создать файл app / app_controller.php и проанализируйте домены и сообщите ему, какой dbconfig использовать, а также любые другие настройки core.php с помощью Configure :: write.

1
ответ дан 5 December 2019 в 06:54
поделиться

Вы можете просто создать дополнительный файл, содержащий единственную директиву Configure :: write ('debug', 0) *, импортировать его в файл core.php и держите его вне контроля версий. Лучшее из обоих миров.

* или что-то еще, что вам нужно изменить

1
ответ дан 5 December 2019 в 06:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: