<?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>آموزش وب و لینوکس &#187; yii</title>
	<atom:link href="/category/yii/feed/" rel="self" type="application/rss+xml" />
	<link>http://tuts.zanjanlug.org</link>
	<description></description>
	<lastBuildDate>Tue, 02 Oct 2012 04:12:39 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>آموزش yii &#8211; بخش اول</title>
		<link>http://tuts.zanjanlug.org/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-yii-%d8%a8%d8%ae%d8%b4-%d8%a7%d9%88%d9%84/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25d8%25a2%25d9%2585%25d9%2588%25d8%25b2%25d8%25b4-yii-%25d8%25a8%25d8%25ae%25d8%25b4-%25d8%25a7%25d9%2588%25d9%2584</link>
		<comments>http://tuts.zanjanlug.org/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-yii-%d8%a8%d8%ae%d8%b4-%d8%a7%d9%88%d9%84/#comments</comments>
		<pubDate>Mon, 17 Sep 2012 10:35:13 +0000</pubDate>
		<dc:creator>chalist</dc:creator>
				<category><![CDATA[yii]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[پی اچ پی]]></category>
		<category><![CDATA[آموزش yii]]></category>
		<category><![CDATA[فریم ورک]]></category>

		<guid isPermaLink="false">http://tuts.zanjanlug.org/?p=1448</guid>
		<description><![CDATA[زنجان لاگ تصمیم گرفت یه فریم ورکی رو انتخاب کنه که بچه ها دورهم یاد بگیرن. بعد از بررسی ها به این نتیجه رسیدیم که فریم ورک yii خوب است. بررسی هامون نشون می داد که yii همیشه در بنچ &#8230; <a href="/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-yii-%d8%a8%d8%ae%d8%b4-%d8%a7%d9%88%d9%84/"><span class='more-link'>ادامه ی مطلب</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2012/09/yii.png"><img class="alignright size-full wp-image-1449" title="yii" src="/wp-content/uploads/2012/09/yii.png" alt="" width="150" height="150" /></a>زنجان لاگ تصمیم گرفت یه فریم ورکی رو انتخاب کنه که بچه ها دورهم یاد بگیرن. بعد از بررسی ها به این نتیجه رسیدیم که فریم ورک yii خوب است. بررسی هامون نشون می داد که yii همیشه در بنچ مارک هایی که در سایت های مختلف دیده می شد جزو سه تای اول بود و یه بررسی کوچولو در مورد امکاناتش ما رو بر اون داشت که هرچه سریع تر آموزشش رو شروع کنیم و هر کاری می کنیم مستند کنیم! (باشد که رستگار شویم مثلن)<span id="more-1448"></span></p>
<p>داکیومنت ها خیلی خودمونی و عامیانه نوشته می شن.</p>
<p><strong>فرق فریم ورک و کتابخانه</strong></p>
<p>در فریم ورک ها خیلی از کارها رو از قبل برامون انجام دادن و کافیه تنها با فراخوانی اون امکانات و کاستومایز کردن اونها به راحتی می تونیم ازشون استفاده کنیم.</p>
<p>کتابخانه ها در واقع یه سری از توابع آماده هستن. مجموعه ای از ابزار های آماده که به هر نحوی بخواید می تونید از اونها استفاده کنید.</p>
<p>در کتابخانه ها شما هیچ محدودیتی ندارید و هر طوری بخواید می تونید باهاشون کار کنید. اما در فریم ورک ها برای شما یه سری قوانین تعریف می شه که باید ازشون استفاده کنید. مثل ساختار فایل ها و اسم گذاری توابع و …</p>
<p><strong>چرا yii ؟</strong></p>
<p>فریم ورک های زیادی برای کار هستند مثل cakephp و zend و … اما فریم ورک yii به خاطر بنچمارک های خوبی که داره و امکاناتی که در نظر گرفته شده انتخاب شده.</p>
<p><strong>روش نصب:</strong></p>
<p>در فولدر www فایل های فریم ورک yii رو اکسترکت می کنیم و شاخه رو به نام yii_education تغییر می دیم. برای اکسترکت کردن می تونید از دستور:</p>
<pre class="brush: plain; title: ; notranslate">

tar -zxvf [filename.tar.gz]

</pre>
<p>پس از این کار یه لینک می سازیم برای اینکه بعد ها وقتی خواستیم فریم ورک رو آپگرید بکنیم مشکلی در تغییر نام فولدرها نداشته باشیم و به راحتی آپگرید کنیم. برای این کار می تونید از این دستور استفاده کنید:</p>
<pre class="brush: plain; title: ; notranslate">

ln -s [foldername] yii

</pre>
<p>درواقع شاخه ی فریم ورک از شاخه ی پروژه ی ما جداست.</p>
<p><strong>موارد مورد نیاز برای کار با yii</strong></p>
<p>برای اینکه ببینید پیش نیازهای مورد نیاز برای کار با yii رو نصب دارید می تونید به آدرس زیر برید:</p>
<pre class="brush: plain; title: ; notranslate">

http://127.0.0.1/yii/requirements/

</pre>
<p><a href="/wp-content/uploads/2012/09/Selection_021.png"><img class="alignnone size-full wp-image-1455" title="Selection_021" src="/wp-content/uploads/2012/09/Selection_021.png" alt="" width="831" height="504" /></a></p>
<p>اگر این صفحه ی بالا رو می بینید ینی اینکه بدون مشکل می تونید باهاش کار کنید.</p>
<p><strong>ساختن پروژه:</strong><br />
برای ساختن پروژه می تونید دستور زیر رو توی ترمینال اجرا کنید:</p>
<pre class="brush: plain; title: ; notranslate">

yii/framework/yiic webapp yii_education

</pre>
<p>با این دستور با استفاده از کتابخونه های اصلی در شاخه ی yii ما یه پروژه ی جدید ساختیم به نام yii_education .<br />
وقتی دستور رو اجرا می کنید ازتون یه سوال می پرسه که می تونید با زدن yes پروژه رو به طور کامل بسازید.</p>
<p>ممکنه در برخی از سیستم ها خطای تابع date رو ببینید که با اضافه کردن یه خط در فایل index.php در شاخه ی yii_education این مشکل رو برطرف کنید:</p>
<pre class="brush: plain; title: ; notranslate">

date_default_timezone_set('Asia/Tehran'); 

</pre>
<p><strong>ساختار yii:</strong></p>
<p>controller در واقع بخش اصلی کار ما محسوب می شن. همه چیزبه کنترلر هدایت می شه و در کنترلر تصمیم گرفته می شه که چی کار باید کرد.<br />
اگر قرار باشه از کنترلر به دیتابیس وصل بشیم و نیاز به گرفتن اطلاعات داشته باشیم با مmodel ارتباط برقرار می کنیم و برای نمایش اون اطلاعات از view استفاده می کنیم.</p>
<p><a href="/wp-content/uploads/2012/09/Selection_022.png"><img src="/wp-content/uploads/2012/09/Selection_022.png" alt="" title="Selection_022" width="626" height="514" class="alignnone size-full wp-image-1457" /></a></p>
<p>بر خلاف خیلی از فریم ورک ها که MVC رو به طور کامل پیاده سازی نکردن yii در این بخش خیلی خوب عمل کرده. در برخی از بخش ها ما حتی نیازی به کار با کنترولر نداریم و خود view به راحتی با model ارتباط برقرار می کنه و اطلاعات مورد نیاز رو که نیازی نیست در موردشون تصمیم گیری بشه نمایش می ده و عملن با این کار سرعت برنامه هم بیشتر می شه.</p>
<p><strong>ساختار شاخه های yii :</strong></p>
<p><a href="/wp-content/uploads/2012/09/Selection_024.png"><img src="/wp-content/uploads/2012/09/Selection_024.png" alt="" title="Selection_024" width="453" height="273" class="alignnone size-full wp-image-1458" /></a></p>
<p><strong>assets</strong>: هر اسکریپتی (جاوااسکریپت یا سی اس اس ها) که متعلق به widget ها هستن بخشی از اونها داخل این شاخه قرار می گیره.</p>
<p><strong>css</strong> : سی اس اس ها (اختیاری)</p>
<p><strong>images</strong> : عکس های پروژه (اختیاری)</p>
<p><strong>protected</strong> : اسکلت اصلی برنامه</p>
<p><strong>themes</strong> : قالب هایی که برای سایت طراحی می کنیم داخل این شاخه قرار می گیره.<br />
<strong>index.php</strong> : فایل صفحه ی اصلی که اجرا می شه</p>
<p><strong>index-test.php</strong> : فایل ایندکس برای تست کردن</p>
<p><strong>ساختن دیتابیس:</strong><br />
یه دیتابیس به نام yii_education می سازیم و داخلش یه جدول به نام tbl_news می سازیم با این ساختار:</p>
<pre class="brush: sql; title: ; notranslate">
--
-- Table structure for table `tbl_news`
--

CREATE TABLE IF NOT EXISTS `tbl_news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(300) COLLATE utf8_persian_ci NOT NULL,
  `content` longtext COLLATE utf8_persian_ci NOT NULL,
  `post_date` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=1 ;
</pre>
<p>فایل main.php رو در شاخه ی protected > config باز کنید و در خط ۵۵ این بخش رو uncomment کنید و اطلاعات مربوط به ارتباط با دیتابیس رو اضافه کنید:</p>
<pre class="brush: plain; title: ; notranslate">
'db'=&gt;array( 
	 'connectionString' =&gt; 'mysql:host=localhost;dbname=yii_education', 
	'emulatePrepare' =&gt; true, 
	'username' =&gt; 'root', 
	'password' =&gt; '123456', 
	'charset' =&gt; 'utf8', 
	'tablePrefix' =&gt; 'tbl_', 
),
</pre>
<p>و در خط ۲۱ در بخش ماژول این بخش رو هم از کامنت خارج کنید:</p>
<pre class="brush: plain; title: ; notranslate">
'gii'=&gt;array( 
         'class'=&gt;'system.gii.GiiModule', 
         'password'=&gt;'123456', 
         // If removed, Gii defaults to localhost only. Edit carefully to taste. 
         'ipFilters'=&gt;array('127.0.0.1','::1'), 
      ), 

</pre>
<p><strong>تولید کدها با yii code generator :</strong></p>
<p>در مرورگر به آدرس زیر برید:</p>
<pre class="brush: plain; title: ; notranslate">

http://127.0.0.1/yii_education/index.php?r=gii

</pre>
<p>پسوردی رو که در بخش ماژول ها ساختید بزنید و وارد بخش ساخت کدها بشید.<br />
<a href="/wp-content/uploads/2012/09/Selection_025.png"><img src="/wp-content/uploads/2012/09/Selection_025.png" alt="" title="Selection_025" width="930" height="484" class="alignnone size-full wp-image-1460" /></a></p>
<p>به بخش  Model Genetator برید و نام جدول رو کامل بنویسید و Preview رو بزنید.<br />
توجه کنید که فعلن چون روی لوکال هاست کار می کنیم مجوز دسترسی همه ی فایل ها رو ۷۷۷ می کنیم تا yii بتونه فایل هاش رو بسازه.</p>
<p>بعد از پریویو کلید generate رو می زنید و بعد به بخش  Crud Generator می رید و دوباره crud رو با همون روش قبلی بسازید.</p>
<p><a href="/wp-content/uploads/2012/09/Selection_026.png"><img src="/wp-content/uploads/2012/09/Selection_026.png" alt="" title="Selection_026" width="657" height="155" class="alignnone size-full wp-image-1461" /></a></p>
<p>روی لینک try it now کلیک کنید. باید برای لاگین کردن یوزر admin و password رو هم admin وارد کنید و از اپلیکیشن کوچیکی که ساختید لذت ببرید.</p>
<p>برای جلسه ی بعد روی جدول users کار می کنیم و یه بخش لاگین و مدیریت بخش کاربری می نویسم برای سایتمون.<br />
به مرور کم کم این سایت رو تبدیل می کنیم به یه سایت خبری کوچیک.</p>
]]></content:encoded>
			<wfw:commentRss>http://tuts.zanjanlug.org/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-yii-%d8%a8%d8%ae%d8%b4-%d8%a7%d9%88%d9%84/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->