Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Как узнать код, который "генеририрует" var $scaffo

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
Борис

цитировать



Зарегистрирован: 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 как угодно душе или заказчику.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение MSN Messenger
Борис

цитировать



Зарегистрирован: 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"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение MSN Messenger
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru