Сен 09 2008

Для новичков в CakePHP — как создать первую страничку?

Раздел: Веб-разработкаМета @ 23:56

Платформа CakePHP построена по принципу MVC — Модель-Вид-Контроллер. Модель представляет собой данные, вызовами функций модели выполняются запросы к СУБД. Контроллер управляет обработкой этих данных, связывает данные с внешним оформлением. Вид — это внешнее оформление данных, шаблон html-кода. Более подробно о принципах MVC читайте здесь. Для создания простейшей странички в CakePHP вам необходимо создать три файла — соответственно модель, контроллер и вид.

Например, у вас есть таблица в базе данных, содержащая записи в блоге:

CREATE TABLE posts (
id INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(255) DEFAULT ”,
post TEXT NOT NULL,
PRIMARY KEY (id)
);

Вы скопировали все файлы из архива cakephp в папку caketest своего веб-сервера.
Создаем модель в файле /caketest/app/models/post.php:

<?php
class Post extends AppModel {
var $name = ‘Post’;
}
?>

Создаем контроллер в файле /caketest/app/controllers/posts_controller.php:

<?php
class PostsController extends AppController {
var $name = ‘Posts’;
function index() {
$this->set(’posts’,$this->Post->findall());
}
}
?>

Создаем вид в файле /caketest/app/views/posts/index.ctp:

<h1>Все посты в моем блоге:</h1>
<?php foreach($posts as $post) { ?>
<h2><?php echo $post['Post']['id'];?>. <?php echo $post['Post']['name'];?></h2>
<p><?php echo $post['Post']['post'];?></p>
} ?>

Не забудьте прописать логин и пароль для доступа к базе данных в файле /caketest/app/config/database.php.

И все — попробуйте зайти на страничку /caketest/posts/index — и увидите список всех записей из базы данных.

Теги:

2 Responses to “Для новичков в CakePHP — как создать первую страничку?”

  1. Эссе о движках и фреймворках - Программируем на CakePHP says:

    [...] уже писал заметку для новичков в CakePHP, но понимания отличий работы платформы (framework) от [...]

  2. Фреймворки на PHP | Веб-лог программиста says:

    [...] Для новичков в CakePHP — как создать первую страничку? [...]

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