<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/abc" -->
<rss version="0.92">
<channel>
	<title>Программируем на CakePHP</title>
	<link>http://com.spweb.ru</link>
	<description>Блог об использовании CakePHP и других веб-технологиях.</description>
	<lastBuildDate>Mon, 09 Feb 2009 06:22:52 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Мягкое удаление с помощью Soft Delete Behavior</title>
		<description><![CDATA[С помощью этого компонента вы можете использовать в своих проектах «мягкое удаление» - т.е. установку флага для пометки удаленных записей, вместо реального их удаления. Зачем это нужно? Например, для хранения предыдущих версий отредактированных записей на блоге, для сохранения архива старых товаров в магазине — применений масса. Я стараюсь во всех своих проектах использовать «мягкое удаление» [...]]]></description>
		<link>http://com.spweb.ru/archives/181</link>
			</item>
	<item>
		<title>Выносите максимум логики в модели</title>
		<description><![CDATA[Просмотрите код ваших контроллеров. Если часто встречаются конструкции типа

$this-&#62;Product-&#62;recursive = -1;
$hits = $this-&#62;Product-&#62;find&#40;'all',array&#40;'conditions'=&#62;'Product.image &#60;&#62; &#34;no_image&#34;','order'=&#62;'Product.hit DESC, Product.added DESC','limit'=&#62;9&#41;&#41;;

то задумайтесь — а место ли им в контроллере?
В чем идея модели? Предоставлять интерфейс к данным. Т.е. Модель должна вернуть уже готовые к отображению данные, в контроллере — только связь с внешним видом. Весь выше приведенный код стоило [...]]]></description>
		<link>http://com.spweb.ru/archives/172</link>
			</item>
	<item>
		<title>Отладка проектов на CakePHP с использованием DebugKit</title>
		<description><![CDATA[Сразу в двух публикациях нашел ссылки на замечательный плагин к CakePHP – DebugKit. 
DebugKit предоставляет доступ к отладочной информации вашего приложения. С помощью него можно просматривать содержимое сессии, запроса, sql-лог, а также информацию о времени выполнения и производительности. И все это — в любом вашем проекте. Плагин совместим только с CakePHP 1.2 начиная с RC3.

Как [...]]]></description>
		<link>http://com.spweb.ru/archives/166</link>
			</item>
	<item>
		<title>Заменяем стандартные хелперы не трогая ядро CakePHP</title>
		<description><![CDATA[Я уже писал заметку о расширении функциональности стандартных хелперов, но сегодня наткнулся на интересный пост на блоге cakebaker&#8217;а и в его обсуждении Admad привел замечательный пример как добиться эффекта гораздо быстрее и проще.
Если у вас уже написан проект с применением стандартных хелперов, или допустим не хватает их возможностей, но не хочется создавать отдельный новый хелпер [...]]]></description>
		<link>http://com.spweb.ru/archives/164</link>
			</item>
	<item>
		<title>И снова про основы</title>
		<description><![CDATA[Попробую для новичков более подробно описать особенности взаимодействия частей приложения на CakePHP.
Первая основополагающая идея заложена в понятии «Модель». Что такое модель? Это объектно-ориентированное представление данных внутри приложения, с интуитивно-понятным интерфейсом. Под интерфейсом тут надо понимать не внешний вид, а именно способ взаимодействия с другими объектами приложения. 
Чтобы было проще понять, приведу пример.

Представим, что у нас [...]]]></description>
		<link>http://com.spweb.ru/archives/157</link>
			</item>
	<item>
		<title>Автоматическая загрузка внешних библиотек</title>
		<description><![CDATA[Перевод записи Auto-loading vendor files (or any other file) с блога Cakebaker&#8217;a.
Если вы используете внешние классы, не относящиеся к CakePHP (т.е. не являющиеся готовыми компонентами, хелперами, и т.д., например - PhpMailer или классы Pear), вам приходится импортировать эти классы вручную с помощью вызова App::import(&#8217;Vendor&#8217;, &#8216;ClassName&#8217;). Этот вызов работает если ваши классы находятся в папке &#8216;vendors&#8217;. [...]]]></description>
		<link>http://com.spweb.ru/archives/152</link>
			</item>
	<item>
		<title>Добавление товаров в корзину на AJAX</title>
		<description><![CDATA[Задача из области юзабилити — как добавить товар в корзину, и при этом оставить человека на той же странице, причем желательно даже без перезагрузки оной? Раньше было проблемой, последние пару лет — везде делается на ajax. За примерами реализации далеко ходить не надо — тот же Ozon.ru вовсю пользуется ajax&#8217;ом. Вот в своих проектах нам [...]]]></description>
		<link>http://com.spweb.ru/archives/150</link>
			</item>
	<item>
		<title>Проектирование веб-сайтов</title>
		<description><![CDATA[Как показала практика, один из самых сложных вопросов это не как написать сайт, а какие именно возможности в него закладывать, как его спроектировать чтобы он получился успешный и окупаемый. Даже программисты постоянно ленятся и пытаются писать ровно то что им скажешь не включая мозги, работают «в режиме кодера». Так делать не следует — ни развития, [...]]]></description>
		<link>http://com.spweb.ru/archives/146</link>
			</item>
	<item>
		<title>Настройка для использования консоли Bake в CakePHP 1.2</title>
		<description><![CDATA[Консоль bake — чрезвычайно удобное средство для быстрого создания скелета будущего приложения CakePHP. Bake позволяет простым выбором пунктов меню создать модели, контроллеры и шаблоны для всех ваших таблиц. Причем шаблоны и контроллеры могут быть как со scaffolding&#8217;ом, так и полные, без него. Вот эти самые «полные» скелеты очень удобно редактировать, приводя к нужному, задуманному виду.
Есть [...]]]></description>
		<link>http://com.spweb.ru/archives/139</link>
			</item>
	<item>
		<title>SimpleAcl — простой компонент для авторизации и проверки прав пользователей</title>
		<description><![CDATA[В большинстве приложений необходимо не только отображать данные, но и взаимодействовать с пользователями. И даже не просто взаимодействовать, а по разному работать с разными группами. Даже в этом блоге — есть администраторы, есть зарегистрированные пользователи, а есть просто читатели. Чем админ отличается от обычного пользователя? Тем что у него есть доступ к определенным функциям. Как [...]]]></description>
		<link>http://com.spweb.ru/archives/129</link>
			</item>
</channel>
</rss>
