<?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. Блог 2-х 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 - Дизайн, Web - Программирование и SEO</description>
	<lastBuildDate>Sat, 04 Sep 2010 17:31:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Верстаем дизайн для блога. Часть 1</title>
		<link>http://2coders.ru/sozdanie-dizajna-sajta-ot-a-do-ya-chast-5/</link>
		<comments>http://2coders.ru/sozdanie-dizajna-sajta-ot-a-do-ya-chast-5/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 06:07:31 +0000</pubDate>
		<dc:creator>d4rkr00t</dc:creator>
				<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Верстка]]></category>
		<category><![CDATA[Дизайн]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Html]]></category>

		<guid isPermaLink="false">http://2coders.ru/?p=370</guid>
		<description><![CDATA[В прошлых статьях мы нарисовали дизайн нашего блога. Сегодня мы займемся версткой. Это первая статья из серии. В ней мы сделаем разметку нашей будущей страницы.
 
В чем верстать выбор лично ваш, я предпочитаю NetBeans. 
 
Для начала создадим 2 файла «index.html» и «style.css», а также папку «images» в ней мы будем хранить картинки для шаблона.
В [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">В <a href = "http://2coders.ru/sozdanie-dizajna-sajta-ot-a-do-ya-chast-1/">прошлых статьях</a> мы нарисовали дизайн нашего блога. Сегодня мы займемся версткой. Это первая статья из серии. В ней мы сделаем разметку нашей будущей страницы.</p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal">В чем верстать выбор лично ваш, я предпочитаю <span lang="EN-US"><strong>NetBeans</strong>. </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal">Для начала создадим 2 файла <strong>«<span lang="EN-US">index</span>.<span lang="EN-US">html</span>»</strong> и <strong>«<span lang="EN-US">style</span>.<span lang="EN-US">css</span>»,</strong> а также папку <strong>«<span lang="EN-US">images</span>»</strong> в ней мы будем хранить картинки для шаблона.</p>
<p class="MsoNormal">В файл <strong>«<span lang="EN-US">index</span>.<span lang="EN-US">html</span>» </strong>добавим следующий код:</p>
<pre class="brush: xml;">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
	&lt;title&gt;Дизайн блога&lt;/title&gt;
	&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
	&lt;meta name=&quot;title&quot; content=&quot;&quot; /&gt;
	&lt;meta name=&quot;keywords&quot; content=&quot;&quot; /&gt;
	&lt;meta name=&quot;description&quot; content=&quot;&quot; /&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p><span id="more-370"></span></p>
<p class="MsoNormal">А в файл <strong>«<span lang="EN-US">style</span>.<span lang="EN-US">css</span>»</strong>:</p>
<pre class="brush: xml;">
* {
	margin: 0;
	padding: 0;
}
html {height: 100%}
body {
	font: 12px/18px Arial, Tahoma, Verdana, sans-serif;
	width: 100%;
	height: 100%;
}
a {
	color: blue;
	outline: none;
	text-decoration: underline;
}
a:hover {
	text-decoration: none;
}
p {margin: 0 0 18px}
img {
	border: none;
}
input {vertical-align: middle}
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">Получим, пустую страницу с заголовком «Дизайн блога».</p>
<p class="MsoNormal">Первое что мы сделаем это фон нашей будущей страницы. Для этого из нашего шаблона вырежем кусочек фона 3х3 пикселя:</p>
<p class="MsoNormal">
<p style="text-align: center;"><a title="bg_verstka" rel="lightbox[pics370]" href="http://2coders.ru/wp-content/uploads/2009/04/bg_verstka.gif"  rel="sexylightbox"><img class="attachment wp-att-379 centered" src="http://2coders.ru/wp-content/uploads/2009/04/bg_verstka.gif" alt="bg_verstka" width="30" height="30" /></a></p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">Сохраним его в папке «<span lang="EN-US">images</span>» под именем «<span lang="EN-US">bg</span>.<span lang="EN-US">gif</span>» и добавляем в файле «<span lang="EN-US">style</span>.<span lang="EN-US">css</span>» в теге «<span lang="EN-US">body</span>» следующий код «<span lang="EN-US">background</span>-<span lang="EN-US">image</span>: <span lang="EN-US">url</span>(&#8216;<span lang="EN-US">images</span>/<span lang="EN-US">bg</span>.<span lang="EN-US">gif</span>&#8216;);» получаем:</p>
<pre class="brush: xml;">
body {
	font: 12px/18px Arial, Tahoma, Verdana, sans-serif;
	width: 100%;
	height: 100%;

    background-image: url('images/bg.gif');
}
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">На данный момент мы имеем страницу, залитую нашим паттерном для фона.</p>
<p class="MsoNormal">Теперь перейдем к разметки страницы, мы должны получить шаблон с одним сайд баром справа и прижатым к низу футером.</p>
<p class="MsoNormal">В файле <strong><span lang="EN-US">index</span>.<span lang="EN-US">html</span><span lang="EN-US"> </span></strong>добавим следующий код:</p>
<pre class="brush: xml;">
&lt;div id = &quot;wrapper&quot;&gt;

&lt;div id=&quot;heightFixer&quot;&gt;&lt;/div&gt;

&lt;!--      Шапка         --&gt;
&lt;div id=&quot;header&quot;&gt;
Шапка
&lt;/div&gt;

&lt;!--      Контент         --&gt;
&lt;div id=&quot;content&quot;&gt;
Контент
&lt;/div&gt;

&lt;div style=&quot;clear:both; height:1px; width:5px; float:right;&quot;&gt;&lt;/div&gt;

&lt;!--      Футер         --&gt;
&lt;div id=&quot;footer&quot;&gt;
Футер
&lt;/div&gt;

&lt;/div&gt;
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">Дивы для шапки, контента и футера и небольшой трюк «&lt;<span lang="EN-US">div</span><span lang="EN-US"> </span><span lang="EN-US">style</span>=&raquo;<span lang="EN-US">clear</span>:<span lang="EN-US">both</span>; <span lang="EN-US">height</span>:1<span lang="EN-US">px</span>; <span lang="EN-US">width</span>:5<span lang="EN-US">px</span>; <span lang="EN-US">float</span>:<span lang="EN-US">right</span>;&raquo;&gt;&lt;/<span lang="EN-US">div</span>&gt;», что бы футер располагался там где нужно.</p>
<p class="MsoNormal">Теперь добавим стили, в «<span lang="EN-US">style</span>.<span lang="EN-US">css</span>» пишем следующие:</p>
<pre class="brush: xml;">

#wrapper
{
    width: 1000px;
	margin: 0 auto;
	height: 100%;

    background: #fff;

    text-align: left;
}

#heightFixer
{
    float:right;
    height:100%;
    width:1px;
    margin-right:-5px;
    margin-bottom:-100px;
}

/*     Шапка        */

#header
{
  background: #FFE680;
}
/*     Контент       */
#content
{
    padding-bottom:100px;
}

/*     Футер        */
#footer
{
   clear:both;
   height:99px;

   background: #BFF08E;
}
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">Получаем следующие:</p>
<p class="MsoNormal">
<p style="text-align: center;"><a title="razmetka_bez_sidebar" rel="lightbox[pics370]" href="http://2coders.ru/wp-content/uploads/2009/04/razmetka_bez_sidebar.gif"  rel="sexylightbox"><img class="attachment wp-att-380 centered" src="http://2coders.ru/wp-content/uploads/2009/04/razmetka_bez_sidebar-150x150.gif" alt="razmetka_bez_sidebar" width="150" height="150" /></a></p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">Теперь добавим сайдбар примерно в 1\3 ширины шаблона. Для этого в файле «<span lang="EN-US">index</span>.<span lang="EN-US">html</span>» в теге «<span lang="EN-US">content</span>» добавляем:</p>
<pre class="brush: xml;">

&lt;div id=&quot;main&quot;&gt;Контент&lt;/div&gt;
&lt;div id=&quot;sidebar&quot;&gt;Сайдбар&lt;/div&gt;

&lt;div style=&quot;clear:both; float:right;&quot;&gt;&lt;/div&gt;
</pre>
<p class="MsoNormal">И в стилях:</p>
<pre class="brush: xml;">

  #main
 {
       float: left;
 }
#sidebar
{
        float: right;
        width: 33%;
}

/* Только для IE */
* html #footer
{
	height:82px;
}
</pre>
<p style="text-align: center;"><a title="razmetka_s_sidebarom" rel="lightbox[pics370]" href="http://2coders.ru/wp-content/uploads/2009/04/razmetka_s_sidebarom.gif"  rel="sexylightbox"><img class="attachment wp-att-382 centered" src="http://2coders.ru/wp-content/uploads/2009/04/razmetka_s_sidebarom-150x150.gif" alt="razmetka_s_sidebarom" width="150" height="150" /></a></p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">И напоследок добавим тень, отбрасываемую нашей страницей на фон. Для этого вырезаем из нашего шаблона небольшие кусочки тени:</p>
<p style="text-align: center;"><a title="shadow_r" rel="lightbox[pics370]" href="http://2coders.ru/wp-content/uploads/2009/04/shadow_r.gif"  rel="sexylightbox"><img class="attachment wp-att-384 centered" src="http://2coders.ru/wp-content/uploads/2009/04/shadow_r.gif" alt="shadow_r" width="16" height="5" /></a></p>
<p style="text-align: center;"><a title="shadow_l" rel="lightbox[pics370]" href="http://2coders.ru/wp-content/uploads/2009/04/shadow_l.gif"  rel="sexylightbox"><img class="attachment wp-att-383 centered" src="http://2coders.ru/wp-content/uploads/2009/04/shadow_l.gif" alt="shadow_l" width="8" height="3" /></a></p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">И сохраняем их в папке «<span lang="EN-US">images</span>» под именами «shadow_l. gif» и «shadow_<span lang="EN-US">r</span>.<span lang="EN-US">gif</span>» соответственно. Далее добавляем в файл «<span lang="EN-US">index</span>.<span lang="EN-US">html</span>» после «&lt;<span lang="EN-US">div</span><span lang="EN-US"> </span><span lang="EN-US">id</span>=”<span lang="EN-US">wrapper</span>”&gt;» следующие строки:</p>
<pre class="brush: xml;">

&lt;div id=&quot;shadow_r&quot;&gt;
&lt;div id=&quot;shadow_l&quot;&gt;
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> &lt;!&#8211;  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:&raquo;"; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:&raquo;Times New Roman&raquo;; 	mso-fareast-font-family:&raquo;Times New Roman&raquo;;} @page Section1 	{size:612.0pt 792.0pt; 	margin:2.0cm 42.5pt 2.0cm 3.0cm; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} &#8211;&gt; <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">И конечно закрываем теги после:</p>
<pre class="brush: xml;">

&lt;div id=&quot;footer&quot;&gt;
Футер
&lt;/div&gt;
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">Добавляем:</p>
<pre class="brush: xml;">

&lt;/div&gt;
&lt;/div&gt;
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">В итоге код «<span lang="EN-US">index</span>.<span lang="EN-US">html</span>» выглядит следующим образом:</p>
<pre class="brush: xml;">

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
	&lt;title&gt;Дизайн блога&lt;/title&gt;
	&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
	&lt;meta name=&quot;title&quot; content=&quot;&quot; /&gt;
	&lt;meta name=&quot;keywords&quot; content=&quot;&quot; /&gt;
	&lt;meta name=&quot;description&quot; content=&quot;&quot; /&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;div id = &quot;wrapper&quot;&gt;

&lt;div id=&quot;shadow_r&quot;&gt;
&lt;div id=&quot;shadow_l&quot;&gt;

&lt;div id=&quot;heightFixer&quot;&gt;&lt;/div&gt;

&lt;!--      Шапка         --&gt;
&lt;div id=&quot;header&quot;&gt;
Шапка
&lt;/div&gt;

&lt;!--      Контент         --&gt;
&lt;div id=&quot;content&quot;&gt;

    &lt;div id=&quot;main&quot;&gt;Контент&lt;/div&gt;
    &lt;div id=&quot;sidebar&quot;&gt;Сайдбар&lt;/div&gt;

&lt;div style=&quot;clear:both; float:right;&quot;&gt;&lt;/div&gt;

&lt;/div&gt;

&lt;div style=&quot;clear:both; height:1px; width:5px; float:right;&quot;&gt;&lt;/div&gt;

&lt;!--      Футер         --&gt;
&lt;div id=&quot;footer&quot;&gt;
Футер
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">Осталось добавить стили.</p>
<pre class="brush: xml;">
/* Тени */

#shadow_r
{
    padding-right: 16px;
    height:100%;
    background:url('images/shadow_r.gif') repeat-y right;
}
#shadow_l
{
    padding-left: 8px;
    height:100%;
    background:url('images/shadow_l.gif') repeat-y left;
}
</pre>
<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">Файл стилей в итоге выглядит так:</p>
<pre class="brush: xml;">

* {
	margin: 0;
	padding: 0;
}
html {height: 100%}
body {
	font: 12px/18px Arial, Tahoma, Verdana, sans-serif;
	width: 100%;
	height: 100%;

    text-align: center;

    background-image: url('images/bg.gif');
}
a {
	color: blue;
	outline: none;
	text-decoration: underline;
}
a:hover {
	text-decoration: none;
}
p {margin: 0 0 18px}
img {
	border: none;
}
input {vertical-align: middle}

#wrapper
{
    width: 1000px;
	margin: 0 auto;
	height: 100%;

    background: #fff;

    text-align: left;
}

#heightFixer
{
    float:right;
    height:100%;
    width:1px;
    margin-right:-5px;
    margin-bottom:-100px;
}

/*     Шапка        */

#header
{
  background: #FFE680;
}
/*     Контент       */
#content
{
    padding-bottom:100px;
}
    #main
    {
        float: left;
    }
    #sidebar
    {
        float: right;
        width: 33%;
    }

/*     Футер        */
#footer
{
   clear:both;
   height:99px;
   background: #BFF08E;
}
/* Только для IE */
* html #footer
{
	height:82px;
}

/* Тени */

#shadow_r
{
    padding-right: 16px;
    height:100%;
    background:url('images/shadow_r.gif') repeat-y right;
}
#shadow_l
{
    padding-left: 8px;
    height:100%;
    background:url('images/shadow_l.gif') repeat-y left;
}
</pre>
<p class="MsoNormal">А шаблон:</p>
<p class="MsoNormal">
<p style="text-align: center;"><a title="razmetka_final" rel="lightbox[pics370]" href="http://2coders.ru/wp-content/uploads/2009/04/razmetka_final.gif"  rel="sexylightbox"><img class="attachment wp-att-381 centered" src="http://2coders.ru/wp-content/uploads/2009/04/razmetka_final-150x150.gif" alt="razmetka_final" width="150" height="150" /></a></p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <mce:style><!<br />
/* Style Definitions */<br />
table.MsoNormalTable<br />
{mso-style-name:"Обычная таблица";<br />
mso-tstyle-rowband-size:0;<br />
mso-tstyle-colband-size:0;<br />
mso-style-noshow:yes;<br />
mso-style-parent:"";<br />
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;<br />
mso-para-margin:0cm;<br />
mso-para-margin-bottom:.0001pt;<br />
mso-pagination:widow-orphan;<br />
font-size:10.0pt;<br />
font-family:"Times New Roman";<br />
mso-ansi-language:#0400;<br />
mso-fareast-language:#0400;<br />
mso-bidi-language:#0400;}<br />
--> <!--[endif]--></p>
<p class="MsoNormal">На этом все. В следующем уроке мы сверстаем шапку сайта.</p>
<p class="MsoNormal"><a href="http://2coders.ru/wp-content/uploads/2009/04/d181d0bed0b7d0b4d0b0d0bdd0b8d0b5d0b4d0b8d0b7d0b0d0b9d0bdd0b0d0bed182d0b0d0b4d0bed18fd187d0b0d181d182d18c5.rar">Файлы проекта.</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://2coders.ru/sozdanie-dizajna-sajta-ot-a-do-ya-chast-5/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<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>
<pre lang="LANGUAGE" line="1">
$config['base_url'] = "http://example.com/";
</pre>
<p>И меняем ее на</p>
<pre lang="LANGUAGE" line="1">
$config['base_url'] = "http://localhost/ci/";
</pre>
<p>По умолчанию система адресов в <strong>Codeigniter</strong> строится по такому принципу:<br />
www.your-site.com/<strong>index.php</strong>/news/article/my_article<br />
Использовать такой адрес нежелательно, поэтому в том же файле <strong>config.php</strong> ищем строчку: </p>
<pre lang="LANGUAGE" line="1">
$config['index_page'] = "index.php";
</pre>
<p>Далее заменяем эту строку  на</p>
<pre lang="LANGUAGE" line="1">
$config['index_page'] = "";
</pre>
<p>Создаем в корневой папке файл .htaccess, чтобы удалить из запроса index.php.</p>
<pre lang="LANGUAGE" line="1">
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ ci/index.php/$1 [L]
</IfModule>
</pre>
<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>
<pre lang="LANGUAGE" line="1">
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>
<p>Добавим запись в таблицу “tdata”:</p>
<pre lang="LANGUAGE" line="1">
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>
<p><strong>Настройка соединения с базой данных</strong><br />
Открываем файл <strong>system/application/config/database.php</strong>, вносим свои настройки для соединения с БД. В моем случае настройки будут выглядеть так:</p>
<pre lang="LANGUAGE" line="1">
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "helloworld";
</pre>
<p>Для работы с базой данных нам необходимо подключить библиотеку “database”. Для этого открываем файл <strong>system/application/config/autoload.php</strong> и добавляем библиотеку.</p>
<pre lang="LANGUAGE" line="1">
$autoload['libraries'] = array('database');
</pre>
<p>По умолчанию <strong>CI</strong> использует контроллер <strong>welcome.php</strong>; найти его можно в папке controllers. Для создания нашего “helloworld” приложения этот контроллер не нужен, поэтому удаляем его. Далее открываем файл <strong>system/application/config/routes.php</strong>, находим строку:</p>
<pre lang="LANGUAGE" line="1">
$route['default_controller'] = "welcome";
</pre>
<p>и исправляем ее на </p>
<pre lang="LANGUAGE" line="1">
$route['default_controller'] = "helloworld";
</pre>
<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>
<pre lang="LANGUAGE" line="1">
<?php
class Helloworld_model extends Model {   

    function Helloworld_model()
    {
        // Вызов конструктора
        parent::Model();
    }   

    function getData()
        {
            //Выбираем все данные из таблицы tdata
            $query = $this->db->get('tdata');
            //Возвращаем результат
            return $query->result();
        }   

}
?>
</pre>
<p><strong>Создание контроллера “HelloWorld”</strong><br />
Контроллер это простой файл с классом, названным так чтобы ассоциироваться с URI, по которому он будет вызван. Создаем контроллер <strong>helloworld.php</strong> в папке <strong>controllers</strong>.</p>
<pre lang="LANGUAGE" line="1">
<?php
    class Helloworld extends Controller{
        function index()
        {
		//загружаем модель helloworld_model
            $this->load->model('helloworld_model');   

            $data['content'] = $this->helloworld_model->getData();
            $data['page_title'] = "CI Hello World App!";   

            $this->load->view('helloworld_view',$data);
        }
    }
?>
</pre>
<p><strong>Создание отображения “HelloWorld”</strong><br />
Отображение — это простая веб-страница или ее фрагмент, например шапка, подвал, боковая панель или т.д. Создаем отображение <strong>helloworld_view.php</strong> в папке <strong>views</strong>.</p>
<pre lang="LANGUAGE" line="1">
<html>
    <head>   

    </head>
    <body>
        <?php foreach($content as $c):?>   
<h3><?=$c->fc_title?></h3>

<?=$c->ft_text?>

 
        <?php endforeach;?>
    </body>
</html>
</pre>
<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 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 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 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 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/">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 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 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"> страницу руководства</a>, но оно немного устаревшее. Также организован <a 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 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 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 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">хелперы </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">модули</a>, <a 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">хуки</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">компоненты</a>, <a href="http://www.yiiframework.com/doc/guide/basics.module">модули</a>, <a href="http://www.yiiframework.com/doc/guide/extension.overview">расширения</a>, <a href="http://www.yiiframework.com/doc/guide/basics.view#widget">виджеты</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 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 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 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 href="http://codeigniter.com/user_guide/database/index.html"> классом для работы с БД</a>,</span><span lang="en-US"> </span><span lang="ru-RU">который поддерживает как традиционные структуры, так и шаблоны <a 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 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 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 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 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 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 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 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 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 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 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 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 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 href="http://codeigniter.com/user_guide/general/errors.html">класс обработки ошибок</a>, а так же <a href="http://codeigniter.com/user_guide/general/profiling.html">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 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 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 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 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 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 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/">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">класс для тестирования</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 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 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"><span lang="ru-RU">С</span>odeigniter.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">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">http://blog.termit.name/codeigniter/</a></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="en-US"><a href="http://rmcreative.ru/blog/tag/CodeIgniter" target="_blank">http://rmcreative.ru/blog/tag/CodeIgniter</a></p>
<p style="margin-bottom: 0cm; font-weight: normal;" lang="ru-RU">Ну и как же без хабрахабра &#8211; <a 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>5</slash:comments>
		</item>
	</channel>
</rss>
