Окт 16 2008
Настройка для использования консоли Bake в CakePHP 1.2
Консоль bake — чрезвычайно удобное средство для быстрого создания скелета будущего приложения CakePHP. Bake позволяет простым выбором пунктов меню создать модели, контроллеры и шаблоны для всех ваших таблиц. Причем шаблоны и контроллеры могут быть как со scaffolding’ом, так и полные, без него. Вот эти самые «полные» скелеты очень удобно редактировать, приводя к нужному, задуманному виду.
Есть несколько методов запуска bake, я расскажу про используемый мной. Все инструкции — для Windows.
В первую очередь проверьте, как у вас установлен интерпретатор PHP. У вас обязательно должен быть файл php.exe. Например, он у вас в C:\php. Добавляем эту папку в системную переменную PATH. Для этого заходим в панель управления, выбираем «Система», заходим на закладку «Дополнительно» и нажимаем внизу кнопку «Переменные среды».
В нижнем списке находим переменную Path и редактируем ее, добавив в конце «;C:\php». Теперь вы можете запустить интерпретатор php из командной строки находясь в любой папке.
Пускай, например, DocumentRoot нашего веб-сервера настроен в E:\inetpub. Распаковываем в какую-нибудь папку здесь свежескачанный архив с CakePHP 1.2. Например, в E:\inetpub\caketest. Теперь если зайти на http://localhost/caketest/ вы должны видеть примерно такую картинку:
Создаем структуру базы данных. Здесь я приведу пример простейшей базы данных из четырех таблиц, чтобы показать связи между ними.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | CREATE TABLE IF NOT EXISTS `authors` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM ; CREATE TABLE IF NOT EXISTS `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `body` text NOT NULL, `created` datetime NOT NULL, `author_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM ; CREATE TABLE IF NOT EXISTS `posts_tags` ( `id` int(11) NOT NULL AUTO_INCREMENT, `post_id` int(11) NOT NULL, `tag_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM ; CREATE TABLE IF NOT EXISTS `tags` ( `id` int(11) NOT NULL AUTO_INCREMENT, `tag` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM ; |
Затем открываем файл e:\inetpub\caketest\app\database.php и прописываем в нем настройки доступа к этой базе данных. Например так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '123', 'database' => 'caketest', 'prefix' => '', ); } ?> |
На этом подготовка закончена.
Запускаем командную строку (Пуск->Все программы->Стандартные->Командная строка). Переходим в папку с bake и запускаем его:
1 2 3 | C:\> e:
C:\> cd e:\inetpub\caketest\cake\console
E:\inetpub\caketest\cake\console>php cake.php bake |
Уже можно печь пирожки. Сначала создаем модели, затем контроллеры и шаблоны.