2013-02-03 1 views
1

Я работаю над унаследованным приложением CakePHP 1.3, и хотя у меня есть многолетний опыт работы с PHP, я все еще нахожу свои ноги с CakePHP. Я следую главе 4 «Как пользоваться пекарней» в Rapid Application Development with CakePHP Джейми Мунро, однако шаги, которые он предлагает, похоже, не так, как я ожидал от них.Конфигурация базы данных CakePHP Cake Bake не найдена «

Я чувствую хороший способ объяснить это происходит через этапов:

  1. Следуя книгам пример «Hello World», описанных в предыдущих главах, я настроить основные приложения CakePHP в этом месте на моя машина: /home/public_html/helloworld.local. Я могу видеть пример «Hello World» в веб-браузере на моей локальной машине, когда я достигаю: http://helloworld.local/users/add

  2. Глава 4 показывает, что я двигаюсь в этот каталог: home/public_html/helloworld.local/cake/console

  3. Я затем запустить: ./cake bake

  4. я получаю приглашение ввести расположение приложения и добавить: /home/public_html/helloworld.local/app

  5. Я затем перейти, чтобы выбрать по умолчанию в течение следующих нескольких выборов, и есть никаких проблем, пока я не нарваться на линии: Your database configuration was not found. Take a moment to create one.

Я не понимаю этого, так как есть файл базы данных сконфигурировано в ~/public_html/helloworld.local/приложение/Config/database.php, и когда я обращаюсь к приложению helloworld, описанному ранее (доступно на моем локальном компьютере по адресу http://helloworld.local/users/add), соединение с базой данных успешно установлено и записи могут быть вставлены.

Я также попытался повторно ввожу базы данных, когда предложили шанс на торт печет, но в конечном итоге с ошибкой после успешно добавляя правильные детали:

Fatal error: Class 'DATABASE_CONFIG' not found in /home/public_html/helloworld.local/cake/console/libs/tasks/db_config.php on line 260

Но в любом случае, он должен иметь нашел существующие данные подключения к базе данных, поэтому не уверен, что происходит.

+0

Вы упомянули, что конфигурация базы данных находится в этом пути /public_html/setify.in/app/config/database.php, которая отличается от пути 'helloworld.local'? – thaJeztah

+0

Извините, неправильная паста. Обновился. – fakeguybrushthreepwood

ответ

1

Для использования команды консоли, такой как выпечка торта, вы должны использовать терминал операционной системы (для linux)/командной строки (для окон). Поэтому вам нужно сделать шаг, упомянутый в пункте , шаг 2 и 3 в консоли. Вы можете прочитать documentation here, чтобы узнать, как использовать команды консоли.

Затем убедитесь, что у вас есть файл home/public_html/helloworld.local/app/config/database.php. Надеюсь, вы удалили .default от своего имени и переименовали его в database.php. Чтобы связать свою базу данных с вашим проектом cakephp, вы должны указать учетные данные в database.php.

var $default = array('driver'  => 'mysql', 
        'persistent' => false, 
        'host'  => 'localhost', 
        'login'  => 'root', 
        'password' => 'password', 
        'database' => 'database_name', 
        'prefix'  => '' 
); 
1

У меня нет работы CakePHP 1.3 установка здесь под рукой, но это то, что происходит в этом месте:

// @link: https://github.com/cakephp/cakephp/blob/1.3/cake/console/libs/tasks/db_config.php#L260 
config('database'); 
$db = new $this->databaseClassName; // i.o.w. $db = new DATABASE_CONFIG; 

Эта строка: конфигурации («База данных»);

Не содержит ничего, кроме файла конфигурации database.php, упрощенного до;

include_once(CONFIGS . $arg . '.php'); // i.o.w. include_once(CONFIGS . 'database.php'); 

(https://github.com/cakephp/cakephp/blob/1.3/cake/basics.php#L77)

Так IMO две проблемы могут привести к вашей ошибки;

  1. приложение/Config/database.php не был найден

Вы можете попробовать проверить, если это выводит на правильный путь:

die(CONFIGS . 'database.php'); 
  1. Там есть ошибка в вашем приложении /config/database.php, в результате чего класс DATABASE_CONFIG будет искажен и не может быть инициализирован

Уведомление об объявлении По-видимому, ваш бег 'bake' для всего включая настройку новой конфигурации базы данных. Это может перезаписать существующую конфигурацию базы данных . Можно испечь только части вашего приложения (например, только контрольные контрольные образцы или модели). Руководство по выпечке в CakePHP 1.3 находится здесь: http://book.cakephp.org/1.3/en/The-Manual/Core-Console-Applications/Code-Generation-with-Bake.html

И это Если это ваш первый проект CakePHP, вы должны действительно рассмотреть возможность обновления до CakePHP 2.x CakePHP 1.3 действительно устарела и , хотя он все еще может работать нормально, я бы не вкладывал слишком много времени в 1.3, так как в CakePHP 2.x появилось много вещей. Это, вероятно, лучше начать с CakePHP 2.x затем начать с 1.3 и узнать вещи, которые больше не работают в CakePHP 2.

0

Скопируйте папку app/Config в app/Console, поэтому окончательный путь будет app/Console/Config. Это сработало для меня.