CakePHP - Manual/Developing/Behaviors /wiki/Manual/Developing/Behaviors History/revisions of CakePHP/Manual/Developing/Behaviors en-us 2009-03-05 20:43:37 /wiki/Manual/Developing/Behaviors/show?time=2009-03-05+20%3A43%3A37 <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.developing.behaviors" href="/wiki/Manual/Developing/Behaviors" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Behaviors</a> за <a href="/wiki/Manual/Developing/Behaviors?time=2009-03-05+20%3A43%3A37">2009-03-05 20:43:37</a> и <a href="/wiki/Manual/Developing/Behaviors">2009-03-05 20:50:27</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><ul><li> <span class="missingpage">Использование поведений</span><a href="/wiki/UsingBehaviors/edit?add=1" title="Создать эту страницу">?</a> </li><li> <span class="missingpage">Создание пользовательских поведений</span><a href="/wiki/CreatingBehaviors/edit?add=1" title="Создать эту страницу">?</a></li></ul></div></div> 2009-03-03 11:23:13 /wiki/Manual/Developing/Behaviors/show?time=2009-03-03+11%3A23%3A13 <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/Developing/Behaviors" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Behaviors</a> за <a href="/wiki/Manual/Developing/Behaviors?time=2009-03-03+11%3A23%3A13">2009-03-03 11:23:13</a> и <a href="/wiki/Manual/Developing/Behaviors?time=2009-03-05+20%3A43%3A37">2009-03-05 20:43:37</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><span class="missingpage">&lt;&lt; Источники данных</span><a href="/wiki/Models/Datasources/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Использование поведений &gt;&gt;</span><a href="/wiki/UsingBehaviors/edit?add=1" title="Создать эту страницу">?</a></div><br /> <b>Удалено:</b><br /> <div class="deletions"><span class="missingpage">&lt;&lt; Источники данных</span><a href="/wiki/Models/Datasources/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Использование поведений &gt;&gt;</span><a href="/wiki/UsingBehaviors/edit?add=1" title="Создать эту страницу">?</a></div></div> 2009-02-12 21:03:30 /wiki/Manual/Developing/Behaviors/show?time=2009-02-12+21%3A03%3A30 <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/Developing/Behaviors" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Behaviors</a> за <a href="/wiki/Manual/Developing/Behaviors?time=2009-02-12+21%3A03%3A30">2009-02-12 21:03:30</a> и <a href="/wiki/Manual/Developing/Behaviors?time=2009-03-03+11%3A23%3A13">2009-03-03 11:23:13</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><span class="missingpage">&lt;&lt; Источники данных</span><a href="/wiki/Models/Datasources/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Использование поведений &gt;&gt;</span><a href="/wiki/UsingBehaviors/edit?add=1" title="Создать эту страницу">?</a></div></div> 2009-02-12 20:25:05 /wiki/Manual/Developing/Behaviors/show?time=2009-02-12+20%3A25%3A05 <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/Developing/Behaviors" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Behaviors</a> за <a href="/wiki/Manual/Developing/Behaviors?time=2009-02-12+20%3A25%3A05">2009-02-12 20:25:05</a> и <a href="/wiki/Manual/Developing/Behaviors?time=2009-02-12+21%3A03%3A30">2009-02-12 21:03:30</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><br /> Поведения модели &ndash; это&nbsp;способ организовать некоторую функциональность в&nbsp;моделях <!--notypo-->CakePHP<!--/notypo-->. Они&nbsp;позволяют нам&nbsp;разделять логику, которая, возможно, не&nbsp;относится прямо к&nbsp;модели, но&nbsp;нужна там. Для&nbsp;предоставления простого и&nbsp;действенного способа расширить модели, <em>поведения</em> позволяют нам&nbsp;прикрепить функциональность к&nbsp;моделям, определением простого класса переменных. Таким образом <em>поведения</em> дают возможность моделям избавиться от&nbsp;лишнего веса, который может не&nbsp;быть частью бизнес контракта (моделируемого моделями), или, который нужен в&nbsp;различных моделях и&nbsp;может быть экстраполирован в&nbsp;дальнейшем. <br /> <br /> В&nbsp;качестве примера, рассмотрим модель, которая даёт нам&nbsp;доступ к&nbsp;таблице базы данных, хранящей структурную информацию о&nbsp;дереве. Удаление, добавление, перемещение узлов в&nbsp;этом дереве не&nbsp;такое простое, как&nbsp;удаление, вставка и&nbsp;редактирование строк в&nbsp;таблице. Многие записи должны будут обновиться, когда элементы дерева перемещаются. Вместо того, чтобы создавать эти&nbsp;методы, манипулирования деревом для&nbsp;каждой модели, которой нужна такая функциональность, мы&nbsp;можем просто сказать нашей модели использовать <!--notypo-->TreeBehavior<!--/notypo-->, или&nbsp;более формально, мы&nbsp;говорим нашей модели вести себя, как&nbsp;Tree (дерево). Это&nbsp;известно, как&nbsp;прикрепление поведения к&nbsp;модели. С&nbsp;помощью одной строчки кода наша модель <!--notypo-->CakePHP<!--/notypo--> приобретает всё новое множество методов, которое позволяет ей&nbsp;взаимодействовать с&nbsp;базовой структурой.<br /> <br /> <!--notypo-->CakePHP<!--/notypo--> уже&nbsp;включает в&nbsp;себя поведения для&nbsp;структур, типа <em>дерева</em>, переведенное содержимое, не&nbsp;упоминая, созданные обществом <em>поведения</em>, уже&nbsp;доступны в&nbsp;<!--notypo-->CakePHP<!--/notypo--> пекарне <a href="http://bakery.cakephp.org" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink"><img src="/wiki_/themes/cake/icons/web.gif" alt="" border="0" />http://bakery.cakephp.org</a>. В&nbsp;этом разделе мы&nbsp;рассмотрим базовое использование образцов для&nbsp;добавления <em>поведений</em> к&nbsp;моделям, как&nbsp;использовать встроенные в&nbsp;<!--notypo-->CakePHP<!--/notypo--> поведения, и&nbsp;как создавать наши собственные.</div></div>