Окт 16 2008

Настройка для использования консоли Bake в CakePHP 1.2

Раздел: НастройкиМета @ 23:10

Консоль 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

Уже можно печь пирожки. :) Сначала создаем модели, затем контроллеры и шаблоны.

Теги: ,

Напиши комментарий!