<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>2Coders - блог web-разработчика &#187; Codeigniter</title>
	<atom:link href="http://2coders.ru/category/frejmvorki/codeigniter/feed/" rel="self" type="application/rss+xml" />
	<link>http://2coders.ru</link>
	<description>Web - программирование и SEO</description>
	<lastBuildDate>Fri, 07 Oct 2011 09:48:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Codeigniter: быстрый старт</title>
		<link>http://2coders.ru/codeigniter-bystryj-start/</link>
		<comments>http://2coders.ru/codeigniter-bystryj-start/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 19:41:23 +0000</pubDate>
		<dc:creator>Max</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Дизайн]]></category>
		<category><![CDATA[Фреймворки]]></category>

		<guid isPermaLink="false">http://2coders.ru/?p=158</guid>
		<description><![CDATA[Codeigniter &#8211; это PHP фреймворк от компании EllisLab. Благодаря подробной документации и большому сообществу, Codeigniter(CI) является наилучшим решением для тех, кто только начинает изучать фреймворки. На мой взгляд, CI один из самых удобных и простых в освоении фреймворков. Подробнее о плюсах и минусах этого фреймворка можно прочитать здесь. В своей статье я покажу как установить [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://2coders.ru/wp-content/uploads/2009/03/cilogo.thumbnail.png" alt="codeigniter" width="200" height="200" class="attachment wp-att-165 alignleft" /><br />
<strong>Codeigniter</strong> &#8211; это  PHP фреймворк от компании EllisLab. Благодаря подробной документации и большому сообществу, <strong>Codeigniter</strong>(CI) является наилучшим решением для тех, кто только начинает изучать фреймворки. На мой взгляд, <strong>CI</strong> один из самых удобных и простых в освоении фреймворков. Подробнее о плюсах и минусах этого фреймворка  можно прочитать <a href="http://2coders.ru/obzor-frejmvorka-codeigniter/">здесь</a>.<br />
В своей статье я покажу как установить и настроить <strong>CI</strong>. </p>
<h3>Шаг 1: Загрузка CodeIgniter</h3>
<p>Для начала работы, необходимо скачать сам <strong>Codeigniter</strong>, для этого переходим на официальный сайт: http://codeigniter.com/. Последняя версия на момент написания статьи: 1.7.1.</p>
<p><span id="more-158"></span></p>
<h3>Шаг 2: Установка</h3>
<p>После того, как  скачали <strong>Codeigniter</strong>. Распаковываем архив и переименовываем папку “CodeIgniter_1.7.1”. После этого копируем папку с фреймворком к себе на сервер. В моем случае я назвал папку &#8211; «ci». В результате у вас должна получиться следующая структура:</p>
<p><img src="http://2coders.ru/wp-content/uploads/2009/03/cifolders.jpg" alt="структура Codeigniter" width="193" height="288" class="attachment wp-att-184 " /></p>
<h3>Шаг 3: Настройка Codeigniter</h3>
<p>Открываем файл <strong>/system/application/config/config.php </strong><br />
Находим строку:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">$config['base_url'] = &quot;http://example.com/&quot;;</pre></td></tr></table></div>

<p>И меняем ее на</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">$config['base_url'] = &quot;http://localhost/ci/&quot;;</pre></td></tr></table></div>

<p>По умолчанию система адресов в <strong>Codeigniter</strong> строится по такому принципу:<br />
www.your-site.com/<strong>index.php</strong>/news/article/my_article<br />
Использовать такой адрес нежелательно, поэтому в том же файле <strong>config.php</strong> ищем строчку:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">$config['index_page'] = &quot;index.php&quot;;</pre></td></tr></table></div>

<p>Далее заменяем эту строку  на</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">$config['index_page'] = &quot;&quot;;</pre></td></tr></table></div>

<p>Создаем в корневой папке файл .htaccess, чтобы удалить из запроса index.php.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">&lt;IfModule mod_rewrite.c&gt;
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ ci/index.php/$1 [L]
&lt;/IfModule&gt;</pre></td></tr></table></div>

<h3>Шаг 4: Тестирование</h3>
<p>Переходим по адресу http://localhost/ci/. Видим следующую страницу с приветствием:<br />
<img src="http://2coders.ru/wp-content/uploads/2009/03/helloci.jpg" alt="welcome codeigniter" width="500" height="290" class="attachment wp-att-195 aligncenter" /></p>
<h3>Шаг 5: Создание &laquo;HelloWorld&raquo; приложения</h3>
<p><strong>Создание базы данных</strong><br />
Создадим базу “helloworld”и добавим в нее таблицу “tdata” выполнив следующий запрос:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">CREATE TABLE `tdata` (
  `pk_id` int(11) NOT NULL auto_increment,
  `fc_title` varchar(20) default NULL,
  `ft_text` text,
  PRIMARY KEY  (`pk_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;</pre></td></tr></table></div>

<p>Добавим запись в таблицу “tdata”:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">INSERT INTO
            tdata (fc_title, ft_text)
VALUES
            ('Hello World', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sapien eros, lacinia eu, consectetur vel, dignissim et, massa.')</pre></td></tr></table></div>

<p><strong>Настройка соединения с базой данных</strong><br />
Открываем файл <strong>system/application/config/database.php</strong>, вносим свои настройки для соединения с БД. В моем случае настройки будут выглядеть так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">$db['default']['hostname'] = &quot;localhost&quot;;
$db['default']['username'] = &quot;root&quot;;
$db['default']['password'] = &quot;&quot;;
$db['default']['database'] = &quot;helloworld&quot;;</pre></td></tr></table></div>

<p>Для работы с базой данных нам необходимо подключить библиотеку “database”. Для этого открываем файл <strong>system/application/config/autoload.php</strong> и добавляем библиотеку.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">$autoload['libraries'] = array('database');</pre></td></tr></table></div>

<p>По умолчанию <strong>CI</strong> использует контроллер <strong>welcome.php</strong>; найти его можно в папке controllers. Для создания нашего “helloworld” приложения этот контроллер не нужен, поэтому удаляем его. Далее открываем файл <strong>system/application/config/routes.php</strong>, находим строку:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">$route['default_controller'] = &quot;welcome&quot;;</pre></td></tr></table></div>

<p>и исправляем ее на</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">$route['default_controller'] = &quot;helloworld&quot;;</pre></td></tr></table></div>

<p><strong>Codeigniter</strong> так же по умолчанию использует отображение <strong>welcome_message</strong> расположенное в папке <strong>views,</strong> нам он тоже не нужен и поэтому можно его удалить.<br />
<strong>Создание модели “HelloWorld”</strong><br />
Модели в <strong>CI</strong> представляют из себя php класс для работы с базой данных. Создадим модель <strong>helloworld_model.php</strong> в папке <strong>system/application/models</strong>. Добавим в нашу модель конструктор и метод getData.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">&lt;?php   
class Helloworld_model extends Model {   
&nbsp;
    function Helloworld_model()   
    {   
        // Вызов конструктора  
        parent::Model();   
    }   
&nbsp;
    function getData()   
        {   
            //Выбираем все данные из таблицы tdata  
            $query = $this-&gt;db-&gt;get('tdata'); 
            //Возвращаем результат   
            return $query-&gt;result();      
        }   
&nbsp;
}   
?&gt;</pre></td></tr></table></div>

<p><strong>Создание контроллера “HelloWorld”</strong><br />
Контроллер это простой файл с классом, названным так чтобы ассоциироваться с URI, по которому он будет вызван. Создаем контроллер <strong>helloworld.php</strong> в папке <strong>controllers</strong>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">&lt;?php   
    class Helloworld extends Controller{   
        function index()   
        {   
		//загружаем модель helloworld_model 
            $this-&gt;load-&gt;model('helloworld_model');   
&nbsp;
            $data['content'] = $this-&gt;helloworld_model-&gt;getData();   
            $data['page_title'] = &quot;CI Hello World App!&quot;;   
&nbsp;
            $this-&gt;load-&gt;view('helloworld_view',$data);   
        }   
    }   
?&gt;</pre></td></tr></table></div>

<p><strong>Создание отображения “HelloWorld”</strong><br />
Отображение — это простая веб-страница или ее фрагмент, например шапка, подвал, боковая панель или т.д. Создаем отображение <strong>helloworld_view.php</strong> в папке <strong>views</strong>.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="language" style="font-family:monospace;">&lt;html&gt;   
    &lt;head&gt;   
        &lt;title&gt;&lt;?=$page_title?&gt;&lt;/title&gt;   
    &lt;/head&gt;   
    &lt;body&gt;   
        &lt;?php foreach($content as $c):?&gt;   
        &lt;h3&gt;&lt;?=$c-&gt;fc_title?&gt;&lt;/h3&gt;   
        &lt;p&gt;&lt;?=$c-&gt;ft_text?&gt;&lt;/p&gt;   
        &lt;br /&gt;   
        &lt;?php endforeach;?&gt;   
    &lt;/body&gt;   
&lt;/html&gt;</pre></td></tr></table></div>

<p>Переходим по адресу http://localhost/ci/  или http://localhost/ci/helloworld и видим, что вместо приветствия теперь отображается наша информация из базы данных.</p>
]]></content:encoded>
			<wfw:commentRss>http://2coders.ru/codeigniter-bystryj-start/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Выбор PHP фреймворка. Сравнение CodeIgniter, Kohana, Yii.</title>
		<link>http://2coders.ru/vybor-php-frejmvorka-sravnenie-codeigniter-kohana-yii/</link>
		<comments>http://2coders.ru/vybor-php-frejmvorka-sravnenie-codeigniter-kohana-yii/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 20:21:09 +0000</pubDate>
		<dc:creator>d4rkr00t</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Kohana]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Yii]]></category>
		<category><![CDATA[Фреймворки]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://2coders.ru/?p=30</guid>
		<description><![CDATA[В декабре 2008, наконец появилась релизная версия нового PHP фреймворка Yii. В 2008 году было выпущено много PHP фреймворков, но Yii наиболее интересный из них, потому что: Его автор Qiang Xue, также разработчик фреймворка PRADO. Это простой в использовании, хорошо организованный, полностью PHP5 совместимый фреймворк, построенный на архитектуре MVC. И утверждаю, что это лучший по [...]]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p><span lang="ru-RU">В декабре 2008, наконец появилась релизная версия нового </span><span lang="en-US">PHP </span><span lang="ru-RU">фреймворка </span><span lang="en-US"><a  rel='nofollow' title="Yii" href="http://www.yiiframework.com/"><strong>Yii</strong></a>. </span><span lang="ru-RU">В 2008 году было выпущено много </span><span lang="en-US">PHP</span><span lang="ru-RU"> фреймворков, но </span><strong><span lang="en-US">Yii </span></strong><span lang="ru-RU">наиболее интересный из них, потому что:</span></p>
<ul>
<li><span lang="ru-RU">Его автор </span>Qiang Xue, также разработчик фреймворка <span lang="en-US">PRADO.</span></li>
<li><span lang="en-US"> </span><span lang="ru-RU">Это простой в использовании, хорошо организованный, полностью </span><span lang="en-US">PHP5 совместимый</span><span lang="ru-RU"> фреймворк, построенный на архитектуре </span><span lang="en-US">MVC.</span></li>
<li><span lang="ru-RU"> И утверждаю, что это лучший по <a href="http://www.yiiframework.com/performance/">производительности</a> </span><span lang="en-US">PHP </span><span lang="ru-RU">фреймворк.</span></li>
</ul>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;">Перейдем непосредственно к сравнению.</p>
<p style="margin-bottom: 0cm;">Версии фреймворков использованных в тесте:</p>
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<blockquote>
<p style="margin-bottom: 0cm;">Codeigniter 1.7.1</p>
<p style="margin-bottom: 0cm;">Kohana 2.3.1</p>
<p style="margin-bottom: 0cm;">Yii 1.0.3</p>
</blockquote>
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;"><strong>Лицензия </strong></h3>
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;"><strong><span lang="en-US">CodeIgniter</span></strong><span lang="en-US"> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">CI использует модифицированную </span><a href="http://codeigniter.com/user_guide/license.html">BSD/Apache-style license</a><span lang="ru-RU">. </span></p>
<p style="margin-bottom: 0cm;"><strong>Kohana</strong> <span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;">Kohana использует новую <a  rel='nofollow' href="http://kohanaphp.com/license">BSD license</a>.</p>
<p style="margin-bottom: 0cm;"><strong>Yii</strong> <span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;">Yii использует новую <a  rel='nofollow' href="http://www.yiiframework.com/license/">BSD license</a>.<span id="more-30"></span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;"><span lang="ru-RU">Совместимость с различными версиями </span><span lang="en-US">PHP</span></h3>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { color: #000080; so-language: zxx; text-decoration: underline } 		A:visited { color: #800000; so-language: zxx; text-decoration: underline } --></p>
<p style="margin-bottom: 0cm;"><strong>CodeIgniter</strong></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">PHP &gt;= 4.3.2 (</span><span lang="ru-RU">Включая все версии </span><span lang="en-US">PHP5).</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">На первый взгляд хорошо, что </span><span lang="en-US">CI </span><span lang="ru-RU">поддерживает </span><span lang="en-US">PHP4 </span><span lang="ru-RU">и </span><span lang="en-US">PHP5. </span><span lang="ru-RU">Однако если вы знакомы с ООП то знаете, что авторы пошли на компромиссы для поддержки </span><span lang="en-US">PHP4. </span><span lang="ru-RU">Это одна из главных причин по которой разработчики стали переходить на другие фреймворки.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Если вы решили использовать </span><span lang="en-US">CI </span><span lang="ru-RU">в своих проектах, рекомендую настроить ваше приложение на использование только </span><span lang="en-US">PHP5 </span><span lang="ru-RU">с нормальным ООП.</span></p>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Kohana</span></strong><span lang="ru-RU"> </span></p>
<p style="margin-bottom: 0cm;">PHP &gt;= 5.2.3</p>
<p style="margin-bottom: 0cm;"><strong>Yii</strong></p>
<p style="margin-bottom: 0cm;">PHP &gt;= 5.1.0</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">Поддерживаемые базы данных</h3>
<p style="margin-bottom: 0cm;"><strong><span lang="en-US">CodeIgniter</span><span lang="en-US"> </span></strong><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;">MySQL</p>
<p style="margin-bottom: 0cm;">MySQLi</p>
<p style="margin-bottom: 0cm;">PostgreSQL</p>
<p style="margin-bottom: 0cm;">MSSQL</p>
<p style="margin-bottom: 0cm;">Oracle</p>
<p style="margin-bottom: 0cm;">SQLite</p>
<p style="margin-bottom: 0cm;">ODBC</p>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Kohana </span></strong><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;">MySQL</p>
<p style="margin-bottom: 0cm;">MySQLi</p>
<p style="margin-bottom: 0cm;">PostgreSQL</p>
<p style="margin-bottom: 0cm;">MSSQL</p>
<p style="margin-bottom: 0cm;">PDOSqlite</p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Поддерживаются все БД поддерживаемые </span><a href="http://php.net/manual/en/book.pdo.php">PDO (PHP Data Object).</a></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">Сообщество</h3>
<p style="margin-bottom: 0cm;"><strong><span lang="en-US">CodeIgniter</span><span lang="en-US"> </span></strong><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Отличное, сильное и активное комьюнити. </span><span lang="en-US">CI</span><span lang="ru-RU"> имеет хороший </span><a  rel='nofollow'  href="http://codeigniter.com/forums/">форум</a>, <a href="http://codeigniter.com/bug_tracker/">bug tracker</a><span lang="ru-RU"> и </span><a href="http://codeigniter.com/wiki/"  rel='nofollow' >wiki</a>.</p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Комьюнити поменьше чем у </span><span lang="en-US">Codeigniter. Kohana </span><span lang="ru-RU">может предложить нам </span><a href="http://forum.kohanaphp.com/">форум</a>, <a  rel='nofollow' href="http://trac.kohanaphp.com/">Trac </a>и <a href="irc://irc.freenode.net/kohana">IRC</a>.</p>
<p style="margin-bottom: 0cm;"><strong><span lang="en-US">Yii </span></strong><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;">Самый молодой фреймворк и по этому имеет самое маленькое комьюнити пользователей, но оно активно развивается по мере увеличения интереса к фреймворку.</p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Yii предлагает нам </span><a href="http://www.yiiframework.com/forum/">форум</a><span lang="ru-RU">, </span><a href="http://code.google.com/p/yii/">проект хостящийся на Google Code</a><span lang="ru-RU"> и </span><a href="http://www.yiiframework.com/doc/">раздел докоментации с возможностью комментирования</a><span lang="ru-RU">.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">Документация</h3>
<p style="margin-bottom: 0cm;"><strong><span lang="en-US">CodeIgniter</span></strong><span lang="en-US"> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Лучшая документация из всех представленных в данном обзоре фреймворокв. Просто</span><span lang="en-US"> </span><span lang="ru-RU">всеобъемлющая, простая для понимания и актуальная документация. </span></p>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Kohana </span></strong><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Документация явно слабее чем у </span><span lang="en-US">CI. </span><span lang="ru-RU">В настоящее время она охватывает большую часть аспектов разработки, однако некоторые части документации являются устаревшими, а иногда и неправильными.</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="ru-RU">(плохо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Документация </span><span lang="en-US">Yii, </span><span lang="ru-RU">выглядит довольно хорошо. Все функции и изменения хорошо задокументированы, видно, что происходит с каждой версией </span><span lang="en-US">Yii. Api </span><span lang="ru-RU">документация так же на высоком уровне. Тем не менее, многие особенности на данном этапе не описаны в руководстве.  Что бы разобраться в некоторых вещах приходится полазить по </span><span lang="en-US">API </span><span lang="ru-RU">документации. </span></p>
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;"><span lang="en-US">Tutorial / </span><span lang="ru-RU">Примеры</span></h3>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">CodeIgniter</span></strong><span lang="ru-RU"><strong> </strong>(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">В </span><span lang="en-US"><a  rel='nofollow' href="http://codeigniter.com/wiki/Tutorials/">wiki</a> </span><span lang="ru-RU">приличное количество статей с примерами, если этого мало есть замечательный форум в котором можно найти решение практически любой задачи.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Kohana </span><span lang="ru-RU">имеет специальную<a href="http://kohanaphp.com/tutorials"  rel='nofollow' > страницу руководства</a>, но оно немного устаревшее. Также организован <a  rel='nofollow'  href="http://learn.kohanaphp.com/">учебный центр</a>, который правда не обновлялся с сентября 2008 года.</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;">Yii имеет <a  rel='nofollow'  href="http://www.yiiframework.com/doc/cookbook/">Cookbook</a> раздел, который содержит подборку учебных пособий. Как всегда если мало руководства, есть форум.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">MVC</h3>
<blockquote>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Все три фреймворка используют архитектуру </span><strong><span lang="en-US"><a  rel='nofollow' href="http://ru.wikipedia.org/wiki/Model-View-Controller">MVC</a> (Model-View-Controller).</span></strong></p>
</blockquote>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">CodeIgniter</span></strong><span lang="ru-RU"> </span></p>
<p style="margin-bottom: 0cm;">Помимо стандартной архитектуры MVC предлагает: <a  rel='nofollow' href="http://codeigniter.com/user_guide/general/libraries.html">библиотеки</a>, <a href="http://codeigniter.com/user_guide/general/plugins.html">плагины</a>, <a href="http://codeigniter.com/user_guide/general/helpers.html"  rel='nofollow' >хелперы </a>и <a href="http://codeigniter.com/user_guide/general/hooks.html">хуки</a>.</p>
<p style="margin-bottom: 0cm;"><strong>Kohana </strong></p>
<p style="margin-bottom: 0cm;">Помимо стандартной архитектуры MVC предлагает: <a href="http://docs.kohanaphp.com/general/modules"  rel='nofollow' >модули</a>, <a  rel='nofollow' href="http://docs.kohanaphp.com/general/events">события</a>, <a href="http://docs.kohanaphp.com/general/libraries">библиотеки</a>, <a href="http://docs.kohanaphp.com/general/helpers">хелперы</a>, <a href="http://docs.kohanaphp.com/general/hooks"  rel='nofollow' >хуки</a>.</p>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Yii</span></strong><span lang="ru-RU"> </span></p>
<p style="margin-bottom: 0cm;">Помимо стандартной архитектуры MVC предлагает: <a href="http://www.yiiframework.com/doc/guide/basics.component"  rel='nofollow' >компоненты</a>, <a href="http://www.yiiframework.com/doc/guide/basics.module">модули</a>, <a  rel='nofollow'  href="http://www.yiiframework.com/doc/guide/extension.overview"  rel='nofollow' >расширения</a>, <a href="http://www.yiiframework.com/doc/guide/basics.view#widget"  rel='nofollow' >виджеты</a>, хелперы.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">Модульность</h3>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">CodeIgniter</span></strong><span lang="ru-RU"> (с помощью сторонних библиотек)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">CI </span><span lang="ru-RU">в стандартной поставке не поддерживает модульность, однако вы можете добавить ее сами с помощью сторонних библиотек, таких как: </span><a href="http://codeigniter.com/wiki/Modular_Extensions_-_HMVC">HMVC</a><span lang="ru-RU"> или </span><a href="http://codeigniter.com/forums/viewthread/65749/">Matchbox</a>.</p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Kohana </span><span lang="ru-RU">предлагает не только <a href="http://docs.kohanaphp.com/general/modules">модули</a>, но и имеет <a  rel='nofollow'  href="http://docs.kohanaphp.com/general/filesystem#cascading">каскадную файловую систему</a> выводящую модульность на новый уровень.</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Yii </span><span lang="ru-RU">с версии </span><span lang="en-US">1.0.3 </span><span lang="ru-RU">поддерживает <a  rel='nofollow' href="http://www.yiiframework.com/doc/guide/basics.module">модульность</a>.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">Конфигурация</h3>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU"></span></strong><span lang="ru-RU"> (хорошо)</span></p>
<p style="margin-bottom: 0cm;">CodeIgniter имеет довольно хорошую <a  rel='nofollow' href="http://codeigniter.com/user_guide/libraries/config.html">конфигурационную систему</a>.</p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Kohana </span><span lang="ru-RU">имеет отличную <a href="http://docs.kohanaphp.com/general/configuration">конфигурационную систему</a>.</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Yii </span><span lang="ru-RU">имеет довольно хорошую <a href="http://www.yiiframework.com/doc/guide/basics.application#application-configuration">конфигурационную систему</a>.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;"><span lang="ru-RU">Класс абстракции БД и </span><span lang="en-US">ORM</span></h3>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">CodeIgniter</span></strong><span lang="ru-RU"> (хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">CodeIgniter обладает очень </span><span lang="ru-RU">мощным<a  rel='nofollow'  href="http://codeigniter.com/user_guide/database/index.html"> классом для работы с БД</a>,</span><span lang="en-US"> </span><span lang="ru-RU">который поддерживает как традиционные структуры, так и шаблоны <a  rel='nofollow'  href="http://en.wikipedia.org/wiki/Active_record_pattern">Active Record</a>. Но </span><span lang="en-US">не имеет встроенной поддержки ORM.<br />
</span></p>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Kohana </span></strong><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Одним из важнейших средством для уменьшения времени разработки проектов для меня является </span><span lang="en-US">ORM. Kohana </span><span lang="ru-RU">предлагает легкую, но достаточно функциональную реализацию </span><span lang="en-US">ORM. </span><span lang="ru-RU">Она не столь сложная как Rails Active Record, но работать с ней достаточно удобно. </span>Особенно люблю простоту обновления <a  rel='nofollow'  href="http://docs.kohanaphp.com/libraries/orm/working#adding_and_removing_data_from_many-to-many_relationships">many-to-many</a> записей.</p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">В </span><span lang="en-US">Yii </span><span lang="ru-RU">более сложный <a  rel='nofollow'  href="http://www.yiiframework.com/doc/guide/database.arr">синтаксис объявления модели отношений</a>, чем в </span><span lang="en-US">Kohana. </span><span lang="ru-RU">Тем не менее, она так же предлагает более мощный функционал. </span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;"><span lang="ru-RU">Авторизация и </span><span lang="en-US">ACL</span></h3>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">CodeIgniter</span></strong><span lang="ru-RU"> (с помощью сторонних библиотек)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">CI </span><span lang="ru-RU">имеет несколько сторонних библиотек реализующих функционал </span><span lang="en-US">ACL. </span><span lang="ru-RU">Подробней можно почитать на <a  rel='nofollow' href="http://codeigniter.com/forums/">форуме</a>.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Kohana </span><span lang="ru-RU">имеет встроенный <a href="http://docs.kohanaphp.com/addons/auth">модуль авторизации</a>, а также есть несколько сторонних разработок.</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Yii </span><span lang="ru-RU">имеет встроенный модуль <a  rel='nofollow'  href="http://www.yiiframework.com/doc/guide/topics.auth">авторизации и аутентификации</a>, достаточно гибкий и простой в использовании.</span></p>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">Валидация</h3>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">CodeIgniter</span></strong><span lang="ru-RU"> (отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">CodeIgniter </span><a href="http://codeigniter.com/user_guide/libraries/form_validation.html">form validation library</a><span lang="ru-RU">. </span></p>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Kohana </span></strong><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Kohana </span><a  rel='nofollow'  href="http://docs.kohanaphp.com/libraries/validation">validation library</a><span lang="ru-RU">. </span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Yii’s </span><a  rel='nofollow'  href="http://www.yiiframework.com/doc/guide/form.model#declaring-validation-rules">использвание валидаторов</a>. Все системные <a href="http://www.yiiframework.com/doc/api/#system.validators">валидаторы</a> хранятся в директории «validators» в главной директории фреймворка.</p>
<p style="margin-bottom: 0cm;">
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">Кеширование</h3>
<p style="margin-bottom: 0cm;"><strong><span lang="en-US">Codeigniter</span></strong><span lang="ru-RU"> (частично</span><span lang="en-US">)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Позволяет <a  rel='nofollow' href="http://codeigniter.com/user_guide/general/caching.html">кешировать</a> только страницы полностью.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Kohana </span><span lang="ru-RU">обладает чуть более продвинутой <a  rel='nofollow' href="http://docs.kohanaphp.com/libraries/cache">системой кеширования</a>, которая поддерживает файлы, SQLite, APC, eAccelerator, memcache и XCache based caching.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Yii</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Как и </span><span lang="en-US">Kohana, Yii поддерживает memcache, APC, Xcache </span><span lang="ru-RU">и основанное на БД <a  rel='nofollow' href="http://www.yiiframework.com/doc/guide/caching.overview">кеширование</a> страниц целиком и по частям.</span></p>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<h3 style="margin-bottom: 0cm;">Сессии</h3>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Codeigniter</span></strong><span lang="ru-RU"><strong> </strong>(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><a  rel='nofollow' href="http://codeigniter.com/user_guide/libraries/sessions.html">Класс сессий</a> в </span><span lang="en-US">CI </span><span lang="ru-RU">достаточно хорош, он поддерживает хранение и обработку данных.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Аналогично </span><span lang="en-US">CI, Kohana </span><span lang="ru-RU">предлагает хорошую <a  rel='nofollow' href="http://docs.kohanaphp.com/libraries/session">библиотеку по работе с сессиями</a>.</span></p>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Yii </span></strong><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Yii </span><span lang="ru-RU">предоставляет более мощный и гибкий <a  rel='nofollow'  href="http://www.yiiframework.com/doc/api/CHttpSession">класс по работе с сессиями</a>. К сожалению он в данный момент плохо задокументирован. </span></p>
<p style="margin-bottom: 0cm;">
<h3><span lang="en-US">Logging \ Debugging </span></h3>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Codeigniter</span></strong><span lang="ru-RU"><strong> </strong>(хорошо)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">CI </span><span lang="ru-RU">имеет простой <a  rel='nofollow' href="http://codeigniter.com/user_guide/general/errors.html">класс обработки ошибок</a>, а так же <a href="http://codeigniter.com/user_guide/general/profiling.html"  rel='nofollow' >profiler класс</a>.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Имеет хороший </span><a href="http://docs.kohanaphp.com/general/logging"><span lang="en-US">logging</span></a><span lang="ru-RU"><a href="http://docs.kohanaphp.com/general/logging"> класс</a>, а так же более <a href="http://docs.kohanaphp.com/libraries/profiler">гибкий профайлер</a>.</span></p>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Yii </span></strong><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Yii </span><span lang="ru-RU">так же имеет <a  rel='nofollow' href="http://www.yiiframework.com/doc/guide/topics.logging">классы обработки ошибок и профайлер</a>, такие же мошные и гибкие как в </span><span lang="en-US">Kohana.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<h3 style="margin-bottom: 0cm;"><span lang="ru-RU">Шаблоны</span></h3>
<blockquote>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Все три фреймворка используют nativе&#8217;ный </span><span lang="en-US">PHP </span><span lang="ru-RU">в</span><span lang="en-US"> </span><span lang="ru-RU">шаблонах.</span></p>
</blockquote>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Codeigniter</span></strong><span lang="ru-RU"> (поддерживает альтернативный синтаксис)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">CI </span><span lang="ru-RU">также предоставляет альтернативный парсер шаблонов, </span><span lang="en-US"><a  rel='nofollow'  href="http://codeigniter.com/user_guide/libraries/parser.html">template parser class</a>.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="en-US">(</span><span lang="ru-RU">поддерживает альтернативный синтаксис с</span><span lang="en-US"> </span><span lang="ru-RU">помощью сторонних библиотек</span><span lang="en-US">)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Kohana </span><span lang="ru-RU">не имеет встроенной поддержки альтернативного синтаксиса шаблонов. Но ее можно добавить с помощью сторонних библиотек, например </span><a href="http://code.google.com/p/temper/">Temper<span lang="ru-RU">.</span></a></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Yii</strong> </span><span lang="ru-RU">(поддерживает альтернативный синтаксис)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Yii </span><span lang="ru-RU">также поддерживает <a href="http://www.yiiframework.com/doc/guide/topics.prado">альтернативный синтаксис шаблонов</a>, заимствованный из </span><span lang="en-US">PRADO.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<h3 style="margin-bottom: 0cm;"><span lang="ru-RU">Хелперы</span></h3>
<blockquote>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Набор функций, для решения определенных задач.</span></p>
</blockquote>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Codeigniter</span></strong><span lang="ru-RU"> (отлично) </span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Имеет 21 встроенный хелпер.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(отлично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">В </span><span lang="en-US">Kohana </span><span lang="ru-RU">включено 19 хелперов.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Yii</strong> </span><span lang="ru-RU">(частично)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Встроено 6 хелперов.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<h3 style="margin-bottom: 0cm;"><span lang="ru-RU">Встроенные </span><span lang="en-US">JavaScript </span><span lang="ru-RU">библиотеки</span></h3>
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Codeigniter</span></strong><span lang="ru-RU"> (нет)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Нет встроенных библиотек.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(нет)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Нет встроенных библиотек.</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US"><strong>Yii</strong> </span><span lang="en-US">(</span><span lang="ru-RU">Да</span><span lang="en-US">)</span></p>
<p style="margin-bottom: 0cm;"><span lang="en-US">Yii </span><span lang="ru-RU">поставляется с библиотекой </span><span lang="en-US"><a  rel='nofollow' href="http://www.jquery.com/">jQuery</a>. </span><span lang="ru-RU">А также с рядом полезных классов таких как <a href="http://www.yiiframework.com/doc/api/CAutoComplete">авто-дополнение</a>.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<h3 style="margin-bottom: 0cm;">Web сервисы</h3>
<blockquote>
<p style="margin-bottom: 0cm;">Рекомендую интегрировать<a  rel='nofollow'  href="http://framework.zend.com/manual/en/"> </a><span lang="en-US"><a href="http://framework.zend.com/manual/en/">Zend Framework</a> </span>для работы с веб сервисами.</p>
</blockquote>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><strong>Codeigniter</strong> (ограничено)</p>
<p style="margin-bottom: 0cm;">Есть <span lang="en-US"><a  rel='nofollow' href="http://codeigniter.com/user_guide/libraries/xmlrpc.html">XML-RPC</a> </span>класс.</p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>Kohana</strong> </span><span lang="ru-RU">(нет)</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Нет поддержки веб сервисов.</span></p>
<p style="margin-bottom: 0cm;"><strong>Yii</strong> (<span lang="ru-RU">ограничено</span>)</p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Поддерживается </span><a  rel='nofollow' href="http://www.yiiframework.com/doc/guide/topics.webservice">SOAP</a>.</p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<h3 style="margin-bottom: 0cm;"><span lang="ru-RU">Многоязычность</span></h3>
<p style="margin-bottom: 0cm;"><strong>Codeigniter </strong>(ограничено)</p>
<p style="margin-bottom: 0cm;">В <span lang="en-US">CI </span>встроен простой класс для поддержки <a href="http://codeigniter.com/user_guide/libraries/language.html">многоязычности</a>.</p>
<p style="margin-bottom: 0cm;"><strong>Kohana</strong> (<span lang="ru-RU">плохо</span>)</p>
<p style="margin-bottom: 0cm;">Kohana <span lang="ru-RU">предоставляет базовый класс по работе с<a href="http://docs.kohanaphp.com/general/i18n"> локалями и многоязычностью</a>.</span></p>
<p style="margin-bottom: 0cm;"><strong>Yii</strong> (<span lang="ru-RU">хорошо</span>)</p>
<p style="margin-bottom: 0cm;">Yii <span lang="ru-RU">содержит более полный класс поддержки <a href="http://www.yiiframework.com/doc/guide/topics.i18n">многоязычности</a>.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<h3 style="margin-bottom: 0cm;"><span lang="ru-RU">Unit Testing</span></h3>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Я рекомендую использовать <a href="http://www.simpletest.org/">SimpleTest</a> или <a href="http://www.phpunit.de/"  rel='nofollow' >PHPUnit</a> для тестирования.</span></p>
<p style="margin-bottom: 0cm;"><strong>Codeigniter </strong>(ограничено)</p>
<p style="margin-bottom: 0cm;"><span lang="en-US">CI </span>имеет очень простой <a href="http://codeigniter.com/user_guide/libraries/unit_testing.html"  rel='nofollow' >класс для тестирования</a>.</p>
<p style="margin-bottom: 0cm;"><strong>Kohana</strong> (<span lang="ru-RU">нет</span>)</p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Нет встроенной поддержки </span>Unit <span lang="ru-RU">тестирования.</span></p>
<p style="margin-bottom: 0cm;"><strong>Yii</strong> (<span lang="ru-RU">нет</span>)</p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Так же как и в </span>Kohana <span lang="ru-RU">отсутствует встроенная поддержка </span>Unit <span lang="ru-RU">тестирования.</span></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">
<h2 style="margin-bottom: 0cm;"><span lang="ru-RU">Вердикт</span></h2>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">На мой взгляд нет лучшего фреймворка, да и целью статьи не было его определение, а скорее анализ плюсов и минусов каждого. А каким пользоваться решать вам. В данный момент я использую </span>CI <span lang="ru-RU">и присматриваюсь к </span>Kohana, <span lang="ru-RU">планирую переносить разработки на него.</span></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Так же можете почитать мой обзор фреймворка <a href="http://2coders.ru/obzor-frejmvorka-codeigniter/">CodeIgniter</a>.<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://2coders.ru/vybor-php-frejmvorka-sravnenie-codeigniter-kohana-yii/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Обзор фреймворка CodeIgniter</title>
		<link>http://2coders.ru/obzor-frejmvorka-codeigniter/</link>
		<comments>http://2coders.ru/obzor-frejmvorka-codeigniter/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 18:26:35 +0000</pubDate>
		<dc:creator>d4rkr00t</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://2coders.ru/?p=19</guid>
		<description><![CDATA[Начну свой обзор этого замечательного framework&#8217;a, с самого понятия framework: Фреймворк (framework): Готовый каркас, на основе которого будет строится приложение. В него включены наиболее часто используемые библиотеки. Отпадает необходимость продумывать структуру приложения, организовывать работу с модулями, классами и т.д. Зачем изобретать велосипед когда можно воспользоваться готовым универсальным решением. С понятием &#171;framework&#187; разобрались, перейдем непосредственно к [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0cm;" lang="ru-RU">Начну свой обзор этого замечательного <span lang="en-US">framework&#8217;a,</span> с самого понятия <span lang="en-US"><strong>framework</strong></span>:</p>
<p style="margin-bottom: 0cm;" lang="ru-RU"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<blockquote>
<p style="margin-bottom: 0cm;" lang="en-US"><span style="text-decoration: underline;"><strong></strong></span><span lang="ru-RU"> <strong>Фреймворк (framework):</strong> Готовый каркас, на основе которого будет строится приложение. В него включены  наиболее часто используемые библиотеки. Отпадает необходимость продумывать структуру приложения, организовывать работу с модулями, классами и т.д.</span></p>
</blockquote>
<p style="margin-bottom: 0cm;" lang="ru-RU"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;" lang="ru-RU">Зачем изобретать велосипед когда можно воспользоваться готовым универсальным решением. <!-- !  		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } -->С понятием &laquo;<span lang="en-US">framework&raquo; </span>разобрались, перейдем непосредственно к самому <strong><span lang="en-US">CodeIgniter&#8217;</span>у</strong>.</p>
<p style="margin-bottom: 0cm;" lang="ru-RU"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { color: #000080; so-language: zxx; text-decoration: underline } --></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU"><strong>CodeIgniter</strong></span><span lang="ru-RU"> — <a href="http://ru.wikipedia.org/wiki/%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA">фреймворк</a> написанный на <a href="http://ru.wikipedia.org/wiki/PHP">PHP</a> для разработки полноценных </span><span lang="en-US">web</span><span lang="ru-RU"> приложений компанией </span>EllisLab.</p>
<p style="margin-bottom: 0cm;">Текущая версия: 1.7.1</p>
<p style="margin-bottom: 0cm;"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Главными достоинствами является скорость и свобода предоставляемая программисту, а также маленький размер фреймворка.</span></p>
<p style="margin-bottom: 0cm;" lang="ru-RU"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;"><strong><span lang="ru-RU">Возможности они же плюсы</span></strong></p>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<ol>
<li><span lang="ru-RU"><span style="font-weight: normal;">Поддержка версий PHP4 и PHP5. Хотя мое мнение, от </span></span><span lang="en-US"><span style="font-weight: normal;">PHP4 </span></span><span lang="ru-RU"><span style="font-weight: normal;">можно отказаться как сделали во фреймворке </span></span><span lang="en-US"><span style="font-weight: normal;">Kohana.</span></span></li>
<li>Модель <a href="http://ru.wikipedia.org/wiki/MVC">MVC</a> (Model-View-Controller).</li>
<li>Поддержка баз данных 	MySQL, PostgreSQL, MSSQL, SQLite, Oracle.</li>
<li>Легко расширяемая 	система через подключение собственных 	библиотек и плагинов.</li>
<li>Фреймворк уже содержит 	в себе большинство необходимых библиотек 	для работы с файлами, отправки электронных 	писем, проверкой данных форм, поддержки 	сессий, работу с изображениями и многие 	другие.</li>
<li>Обладает возможностью 	кеширования на стороне сервера 	SQL-запросов и генерируемых html-страниц.</li>
<li>Хорошо документация 	на русском языке. Один из главных плюсов 	для меня.</li>
<li>Очень быстр в работе. 	В этом смысле — эталон скорости и пример 	для подражания.</li>
<li> Возможность 	использование ЧПУ. Так же возможно 	использовать стандартый вид адресной 	строки.</li>
</ol>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;" lang="en-US">Codeiginter <span lang="ru-RU">идеальный выбор для тех, кто начинает изучать фреймворки. Такой продуманной и полной документации на русском языке нет ни у одного фреймворка.</span></p>
<p style="margin-bottom: 0cm;" lang="en-US"><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { color: #000080; so-language: zxx; text-decoration: underline } 		EM { font-style: italic } 		CODE { font-family: "Courier New", monospace } 		SAMP { font-family: "Courier New", monospace } 		VAR { font-style: italic } --></p>
<p style="margin-bottom: 0cm;" lang="en-US"><span id="more-19"></span></p>
<p style="margin-bottom: 0cm;" lang="en-US"><strong><span lang="ru-RU">Рассмотрим возможности подробней:</span></strong></p>
<p style="margin-bottom: 0cm;" lang="ru-RU">Модель <span lang="en-US">MVC:</span></p>
<p style="margin-bottom: 0cm;" lang="ru-RU"><span lang="en-US"><strong>Codeigniter </strong></span>основан на модели <span lang="en-US">MVC </span>(модель-отображение-контроллер). Это позволяет отделить логику приложения от представления.</p>
<ul>
<li>
<p style="margin-bottom: 0cm;" lang="ru-RU">Модель — 	Класс модели, набор функций для работы 	с данными, который поможет вам обновить, 	получить, добавить информацию.</p>
</li>
<li>
<p style="margin-bottom: 0cm;" lang="ru-RU">Отображение 	— Шаблон для отображения данных, обычно 	простой <span lang="en-US">html </span>со вставками 	<span lang="en-US">php. </span></p>
</li>
<li>
<p style="margin-bottom: 0cm;"><span lang="ru-RU">Контроллер 	- </span>выступает в роли <em>посредника</em> между Моделью, Отображением, и любыми 	другими ресурсами.</p>
</li>
</ul>
<p style="margin-bottom: 0cm;">В <span lang="en-US"><strong>CodeIgniter </strong></span><span lang="ru-RU"><span style="font-weight: normal;">модели не являются обязательными, можно использовать только контроллер и отображение.</span></span></p>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;">Легко расширяемая система:</p>
<ul>
<li><span lang="ru-RU"><span style="font-weight: normal;">Создание 		библиотек — Собственные библиотеки 		(классы) хранятся в папке 		«</span></span><dfn><span lang="ru-RU"><span style="font-weight: normal;">application/libraries» </span></span></dfn><span lang="ru-RU"><span style="font-weight: normal;"> для разделения ресурсов фреймворка 		между локальными и глобальными.</span></span></li>
</ul>
<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<ol>
<li> Вы можете создавать совершенно новые библиотеки.</li>
<li> Вы можете расширять функционал родных библиотек.</li>
<li> Вы можете полностью заменять родную библиотеку.</li>
</ol>
<ul>
<li>Хелперы — коллекция 		функций помогающая в решении определенных 		задач.Вы также можете создавать совершенно новые хелперы или заменить родные.</li>
<li>Плагины — практически 		идентичны хелперам, главное их отличние, 		что плагин это одна функция.</li>
</ul>
<p style="margin-bottom: 0cm;">Возможность использование <a href="http://ru.wikipedia.org/wiki/%D0%A7%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%BE-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%BD%D1%8B%D0%B9_URL">ЧПУ:</a></p>
<p style="margin-bottom: 0cm;" lang="en-US"><span style="font-weight: normal;">Codeigniter </span><span lang="ru-RU"><span style="font-weight: normal;">генерирует чистые и</span></span><span style="font-weight: normal;"> п</span><span lang="ru-RU"><span style="font-weight: normal;">онятные для поисковых систем </span></span><span style="font-weight: normal;">URL. </span></p>
<blockquote>
<p style="margin-bottom: 0cm;"><span lang="en-US"><span style="font-weight: normal;"> </span></span><code><span style="font-weight: normal;">www.your-site.com/</span></code><dfn><span style="font-weight: normal;">class</span></dfn><code><span style="font-weight: normal;">/</span></code><samp><span style="font-weight: normal;">function</span></samp><code><span style="font-weight: normal;">/</span></code><var><span style="font-weight: normal;">id</span></var><code><span style="font-weight: normal;">/</span></code><span style="font-weight: normal;"> </span></p>
</blockquote>
<p style="margin-bottom: 0cm;"><span lang="en-US"><span style="font-weight: normal;">Фреймворк уже содержит в себе большинство необходимых библиотек:</span></span></p>
<p style="margin-bottom: 0cm;" lang="ru-RU"><span style="font-weight: normal;">Список всех библиотек входящих в состав фреймворка можно посмотреть на  сайте </span><a href="http://code-igniter.ru/"><span lang="en-US"><span style="font-weight: normal;">http://code-igniter.ru</span></span></a></p>
<p style="margin-bottom: 0cm;" lang="en-US">
<p></p>
<p style="margin-bottom: 0cm;" lang="en-US"><strong><span lang="ru-RU">Почему </span>CodeIngiter?</strong></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="ru-RU">Я не один раз задавал себе этот вопрос. В сторону выбора именно этого фремворка склоняет:</p>
<ol>
<li>Очень подробная документация на русском языке</li>
<li>Гибкость</li>
<li>Простота в изучении</li>
<li>Скорость работы</li>
<li>Огромное количество пользовательских библиотек для решения практически любых задач.</li>
</ol>
<p style="margin-bottom: 0cm;" lang="ru-RU"><strong>Минусы </strong></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="ru-RU">А как же без них. Главным недостатком для меня остается то, что разработчики держутся за <span lang="en-US">PHP4, </span>а не переносят фреймворк полностью на  <span lang="en-US">PHP5. </span>Так же отсутствие родного модуля для работы с пользователями, т.е. Регистрация, авторизация, разграничение прав доступа и т.д. Отсутствие <span lang="en-US">ORM. </span></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="ru-RU">
<p></p>
<p style="margin-bottom: 0cm;" lang="ru-RU"><strong>Полезные ресурсы по фреймворку</strong></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="en-US"><a title="Сodeigniter.com" href="http://сodeigniter.com" target="_blank" rel='nofollow' ><span lang="ru-RU">С</span>codeigniter.com</a> – <span lang="ru-RU">Оффициальный сайт фрейворка.</span></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="en-US"><a title="Code-igniter.ru" href="http://сode-igniter.ru" target="_blank" rel='nofollow' >Code-igniter.ru</a> – <span lang="ru-RU">Русский сайт по </span>codeigniter, <span lang="ru-RU">содержит практически полностью переведенную документацию по фреймворку.</span></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="en-US"><span lang="ru-RU">Пара интересных блогов по </span>codeigniter:</p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="en-US"><a href="http://blog.termit.name/codeigniter/" target="_blank" rel='nofollow' >http://blog.termit.name/codeigniter/</a></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="en-US"><a rel='nofollow'  href="http://rmcreative.ru/blog/tag/CodeIgniter" target="_blank" rel='nofollow' >http://rmcreative.ru/blog/tag/CodeIgniter</a></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="ru-RU">Ну и как же без хабрахабра &#8211; <a rel='nofollow' title="http://habrahabr.ru/blogs/codeigniter/" href="http://habrahabr.ru/blogs/codeigniter/" target="_blank">http://habrahabr.ru/blogs/codeigniter/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://2coders.ru/obzor-frejmvorka-codeigniter/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

