CakePHP - Manual/BasicPrinciples/Structure /wiki/Manual/BasicPrinciples/Structure History/revisions of CakePHP/Manual/BasicPrinciples/Structure en-us 2008-03-22 02:18:29 /wiki/Manual/BasicPrinciples/Structure/show?time=2008-03-22+02%3A18%3A29 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a name=".manual.basicprinciples.structure" href="/wiki/Manual/BasicPrinciples/Structure" class="">/Manual&nbsp;/&nbsp;Basic&nbsp;Principles&nbsp;/&nbsp;Structure</a> за <a href="/wiki/Manual/BasicPrinciples/Structure?time=2008-03-22+02%3A18%3A29">2008-03-22 02:18:29</a> и <a href="/wiki/Manual/BasicPrinciples/Structure">2009-03-26 13:22:36</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><span class="missingpage">&lt;&lt; Понимание архитектуры MVC</span><a href="/wiki/Beginning/UnderstandingMVC/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Файловая структура &gt;&gt;</span><a href="/wiki/FileStructure/edit?add=1" title="Создать эту страницу">?</a></div></div> 2007-11-28 12:03:23 /wiki/Manual/BasicPrinciples/Structure/show?time=2007-11-28+12%3A03%3A23 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/BasicPrinciples/Structure" class="">/Manual&nbsp;/&nbsp;Basic&nbsp;Principles&nbsp;/&nbsp;Structure</a> за <a href="/wiki/Manual/BasicPrinciples/Structure?time=2007-11-28+12%3A03%3A23">2007-11-28 12:03:23</a> и <a href="/wiki/Manual/BasicPrinciples/Structure?time=2008-03-22+02%3A18%3A29">2008-03-22 02:18:29</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">CakePHP имеет не&nbsp;только классы работы с&nbsp;Контроллером, Моделью и&nbsp;Отображением, но&nbsp;также и&nbsp;некоторые дополнительные классы и&nbsp;объекты, которые делают создание приложений в&nbsp;архитектуре MVC&nbsp;более быстрым и&nbsp;приятным. Компоненты, Поведения и&nbsp;Помощники являются классами, которые расширяют основные, служат для&nbsp;множественного использования и&nbsp;быстро добавляют функциональность к&nbsp;базовым классам MVC&nbsp;в&nbsp;приложениях. Сейчас мы&nbsp;работаем только с&nbsp;основными классами, поэтому узнаем как&nbsp;использовать дополнительные несколько позже.<br /> Расширения, которые позволяют выносить участки кода из&nbsp;Модели, называются Поведениями (Behavior). Например, если вы&nbsp;храните информацию о&nbsp;пользователе в&nbsp;древовидной структуре, то&nbsp;можете выделить пользовательскую Модель в&nbsp;Поведение и&nbsp;получить простую функциональность по&nbsp;добавлению, удалению или&nbsp;редактированию узлов этого дерева.<br /> Модели также поддерживают другой класс под&nbsp;названием DataSource. DataSources &mdash; это&nbsp;абстракция модели, которая позволяет манипулировать различными типами данных. Хотя обычно с&nbsp;Моделью работают, как&nbsp;с&nbsp;базой данных, вам&nbsp;ничего не&nbsp;стоит написать DataSource, чтобы работать с&nbsp;Моделью, как&nbsp;с&nbsp;RSS-потоком, CSV&nbsp;файлами, записями LDAP или&nbsp;событиями iCal. DataSources позволяет вам&nbsp;связать записи различных источников, а&nbsp;не только подсоединяться при&nbsp;помощи SQL. Например, вы&nbsp;можете указать, что&nbsp;ваша LDAP Модель связана с&nbsp;несколькими iCal записями.</div><br /> <b>Удалено:</b><br /> <div class="deletions">CakePHP имеет не&nbsp;только классы работы с&nbsp;Контроллером, Моделью и&nbsp;Отображением, но&nbsp;так же&nbsp;и некоторые дополнительные классы и&nbsp;объекты, которые делают создание приложений в&nbsp;архитектуре MVC&nbsp;более быстрым и&nbsp;приятным. Компоненты, Поведения и&nbsp;Помощники являются классами, которые расширяют основные, служат для&nbsp;множественного использования и&nbsp;быстро добавляют функциональность к&nbsp;базовым классам MVC&nbsp;в&nbsp;приложениях. Сейчас мы&nbsp;работаем только с&nbsp;основными классами, поэтому узнаем как&nbsp;использовать дополнительные несколько позже.<br /> Расширения, которые позволяют выносить участки кода из&nbsp;Модели, называются Поведения (Behavior). Например, если вы&nbsp;храните информацию о&nbsp;пользователе в&nbsp;древовидной структуре, то&nbsp;можете выделить пользовательскую Модель в&nbsp;Поведение и&nbsp;получить простую функциональность по&nbsp;добавлению, удалению или&nbsp;редактированию узлов этого дерева.<br /> Модели так&nbsp;же&nbsp;поддерживают другой класс под&nbsp;названием DataSource. DataSources &mdash; это&nbsp;абстракция модели, которая позволяет манипулировать различными типами данных. Хотя обычно с&nbsp;Моделью работают, как&nbsp;с&nbsp;базой данных, вам&nbsp;ничего не&nbsp;стоит написать DataSource, чтобы работать с&nbsp;Моделью, как&nbsp;с&nbsp;RSS-потоком, CSV&nbsp;файлами, записями LDAP или&nbsp;событиями iCal. DataSources позволяет вам&nbsp;связать записи различных источников, а&nbsp;не только подсоединяться при&nbsp;помощи SQL. Например, вы&nbsp;можете указать, что&nbsp;ваша LDAP Модель связана с&nbsp;несколькими iCal записями.</div></div> 2007-11-28 00:29:51 /wiki/Manual/BasicPrinciples/Structure/show?time=2007-11-28+00%3A29%3A51 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/BasicPrinciples/Structure" class="">/Manual&nbsp;/&nbsp;Basic&nbsp;Principles&nbsp;/&nbsp;Structure</a> за <a href="/wiki/Manual/BasicPrinciples/Structure?time=2007-11-28+00%3A29%3A51">2007-11-28 00:29:51</a> и <a href="/wiki/Manual/BasicPrinciples/Structure?time=2007-11-28+12%3A03%3A23">2007-11-28 12:03:23</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Расширения, которые позволяют выносить участки кода из&nbsp;Модели, называются Поведения (Behavior). Например, если вы&nbsp;храните информацию о&nbsp;пользователе в&nbsp;древовидной структуре, то&nbsp;можете выделить пользовательскую Модель в&nbsp;Поведение и&nbsp;получить простую функциональность по&nbsp;добавлению, удалению или&nbsp;редактированию узлов этого дерева.<br /> Модели так&nbsp;же&nbsp;поддерживают другой класс под&nbsp;названием DataSource. DataSources &mdash; это&nbsp;абстракция модели, которая позволяет манипулировать различными типами данных. Хотя обычно с&nbsp;Моделью работают, как&nbsp;с&nbsp;базой данных, вам&nbsp;ничего не&nbsp;стоит написать DataSource, чтобы работать с&nbsp;Моделью, как&nbsp;с&nbsp;RSS-потоком, CSV&nbsp;файлами, записями LDAP или&nbsp;событиями iCal. DataSources позволяет вам&nbsp;связать записи различных источников, а&nbsp;не только подсоединяться при&nbsp;помощи SQL. Например, вы&nbsp;можете указать, что&nbsp;ваша LDAP Модель связана с&nbsp;несколькими iCal записями.<br /> Как&nbsp;и&nbsp;Контроллеры, Модели предоставляют некоторые функции обратного вызова:<br /> <ul><li> <tt>beforeFind()</tt> </li><li> <tt>afterFind()</tt> </li><li> <tt>beforeValidate()</tt> </li><li> <tt>beforeSave()</tt> </li><li> <tt>afterSave()</tt> </li><li> <tt>beforeDelete()</tt> </li><li> <tt>afterDelete()</tt></li></ul> По&nbsp;именам этих функций должно быть понятно когда они&nbsp;вызываются. Обязательно прочитайте о&nbsp;них подробнее в&nbsp;главе о&nbsp;Моделях.<a name="h73-1"></a><h2>Расширение Приложения</h2> Вы&nbsp;можете определить расширения для&nbsp;Контроллеров, Моделей и&nbsp;Отображений заранее для&nbsp;всех действий системы. AppController (располагается в&nbsp;<tt>/app/app_controller.php</tt>), AppHelper (располагается в&nbsp;<tt>/app/app_helper.php</tt>) и&nbsp;AppModel (располагается в&nbsp;<tt>/app/app_model.php</tt>) &mdash; это&nbsp;классы в&nbsp;которых вы&nbsp;можете определить Компоненты, Помощники и&nbsp;Поведения, которые будут доступны по&nbsp;всей системе.<br /> Cake считает, что&nbsp;URL, введенный вами, указывает на&nbsp;метод контроллера и&nbsp;передает ему&nbsp;параметры. Например URL&nbsp;<tt>&laquo;/controller/action/var1/var2&raquo;</tt> вызывает <tt>Controller::action($var1, $var2)</tt>. Но&nbsp;вы можете поменять эту&nbsp;логику при&nbsp;помощи Роутов.<br /> Некоторые возможности вашего приложения могут быть достойны вынесения в&nbsp;отдельные программы. Плагин &mdash; это&nbsp;пакет Моделей, Контроллеров и&nbsp;Отображений для&nbsp;достижения определенной цели, который может подключаться сразу к&nbsp;нескольким приложениям. Например Система управления пользователями или&nbsp;Система блога могут быть универсальными и&nbsp;подключаться на&nbsp;несколько сайтов одновременно.</div><br /> <b>Удалено:</b><br /> <div class="deletions"><strong>Ту би&nbsp;континед...</strong></div></div>