 |
Cake-PHP.ru Форум программистов CakePHP (на сайт)
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Борис
цитировать
Зарегистрирован: 08 Янв 2008 00:26:04 Сообщения: 8
|
Добавлено: 08 Янв 2008 00:40:57 Заголовок сообщения: Как узнать код, который "генеририрует" var $scaffo |
|
|
Добрый день!
Сегодня автоматом "испёк" несколько view и colntroller. В последних всю логику выполняло объявление "var $scaffold:". Здорово, что мне подготовили некоторый стандартный вариант - это очень удобно для тестирования. Но мне необходимо слегка модифицировать логику выполнения, для чего необходимо самому реализовать функции index, add, edit, delete. Меня бы полностью устроила ситуация, если бы CakePHP мне показал тот текст, который реально используется, чтобы я мог его лишь дорабатывать, а не писать всё с нуля.
Есть ли способ вытащить код, который "сгенерирует" var $scaffold для конкретного controller`а? |
|
Вернуться к началу |
|
 |
vasy@
цитировать
Зарегистрирован: 21 Дек 2007 12:11:24 Сообщения: 11 Откуда: Одесса
|
Добавлено: 08 Янв 2008 12:57:05 Заголовок сообщения: |
|
|
По поводу способа - могу предложить альтернативу.
В папке ..\cake\cake\scripts есть файл bake.php.
Если его запустить в консоли через интерпритатор php.exe (что-то типа c:\php\php.exe bake.php)? то следуя его подсказкам можно создать неплохой каркас для бедещего проекта.
Код: | C:\wamp\www\cake\cake\scripts>c:\php\php.exe bake.php
Bake -app in C:\wamp\www\cake\app (y/n)
[y] >
Baking...
---------------------------------------------------------------
Name: app
Path: C:\wamp\www\cake\app
---------------------------------------------------------------
[M]odel
[C]ontroller
[V]iew
What would you like to Bake? (M/V/C)
> c
---------------------------------------------------------------
Controller Bake:
---------------------------------------------------------------
Possible Controllers based on your current database:
1. Firms
2. Forms
Enter a number from the list above, or type in the name of another controller.> 2
Would you like bake to build your controller interactively?
Warning: Choosing no will overwrite controller if it exist. (y/n)[y] > n
Would you like to include some basic class methods (index(), add(), view(), edit())? (y/n)
[y] > y
Would you like to create the methods for admin routing? (y/n)[y] > n
Content-type: text/html
X-Powered-By: PHP/4.3.10
Creating file C:\wamp\www\cake\app\controllers\forms_controller.php
WroteC:\wamp\www\cake\app\controllers\forms_controller.php
Cake test suite not installed. Do you want to bake unit test files anyway? (y/n)
[y] > y
You can download the Cake test suite from http://cakeforge.org/projects/testsuite/
Baking unit test for Forms...
Creating file C:\wamp\www\cake\app\tests\cases\controllers\forms_controller.test.php |
после примерно такого диалога получаем контроллер для forms
Код: |
<?php
class FormsController extends AppController {
var $name = 'Forms';
var $helpers = array('Html', 'Form' );
function index() {
$this->Form->recursive = 0;
$this->set('forms', $this->Form->findAll());
}
function view($id = null) {
if (!$id) {
$this->Session->setFlash('Invalid id for Form.');
$this->redirect('/forms/index');
}
$this->set('form', $this->Form->read(null, $id));
}
function add() {
if (empty($this->data)) {
$this->render();
} else {
$this->cleanUpFields();
if ($this->Form->save($this->data)) {
$this->Session->setFlash('The Form has been saved');
$this->redirect('/forms/index');
} else {
$this->Session->setFlash('Please correct errors below.');
}
}
}
function edit($id = null) {
if (empty($this->data)) {
if (!$id) {
$this->Session->setFlash('Invalid id for Form');
$this->redirect('/forms/index');
}
$this->data = $this->Form->read(null, $id);
} else {
$this->cleanUpFields();
if ($this->Form->save($this->data)) {
$this->Session->setFlash('The Form has been saved');
$this->redirect('/forms/index');
} else {
$this->Session->setFlash('Please correct errors below.');
}
}
}
function delete($id = null) {
if (!$id) {
$this->Session->setFlash('Invalid id for Form');
$this->redirect('/forms/index');
}
if ($this->Form->del($id)) {
$this->Session->setFlash('The Form deleted: id '.$id.'');
$this->redirect('/forms/index');
}
}
}
?> |
в дальнейшем , получив стартовый толчёк, можно переделывать controller, model или view как угодно душе или заказчику. |
|
Вернуться к началу |
|
 |
Борис
цитировать
Зарегистрирован: 08 Янв 2008 00:26:04 Сообщения: 8
|
Добавлено: 08 Янв 2008 13:28:57 Заголовок сообщения: |
|
|
vasy@ писал(а): | По поводу способа - могу предложить альтернативу.
... |
Спасибо, мне и нужна была генерация подобного кода. Просто у меня версия 1.2, а там на вопрос "Would you like to use scaffolding? (y/n)" я отвечал да, тогда он вместо генерации кодов функций просто вставляет var $scaffold;. Сейчас ответил нет - он вставил текст функций. Жаль, что нигде об этом ничего не написано. |
|
Вернуться к началу |
|
 |
vasy@
цитировать
Зарегистрирован: 21 Дек 2007 12:11:24 Сообщения: 11 Откуда: Одесса
|
Добавлено: 08 Янв 2008 13:37:53 Заголовок сообщения: |
|
|
Как это не написано ?
А тут про ЭТО можно почитать.
Тут же 5 уроков на тему "Быстрое создание Web-сайтов с помощью CakePHP" |
|
Вернуться к началу |
|
 |
|
|
Вы можете начинать темы Вы можете отвечать на сообщения Вы можете редактировать свои сообщения Вы можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group Русская поддержка phpBB
|