نقطه ویرگول;

هر از گاهی از هر چیزی

هر از گاهی از هر چیزی

آموزش yii - بخش اول

دوشنبه, ۲۷ شهریور ۱۳۹۱، ۰۲:۰۵ ب.ظ
زنجان لاگ تصمیم گرفت یه فریم ورکی رو انتخاب کنه که بچه ها دورهم یاد بگیرن. بعد از بررسی ها به این نتیجه رسیدیم که فریم ورک yii خوب است. بررسی هامون نشون می داد که yii همیشه در بنچ مارک هایی که در سایت های مختلف دیده می شد جزو سه تای اول بود و یه بررسی کوچولو در مورد امکاناتش ما رو بر اون داشت که هرچه سریع تر آموزشش رو شروع کنیم و هر کاری می کنیم مستند کنیم! (باشد که رستگار شویم مثلن)
داکیومنت ها خیلی خودمونی و عامیانه نوشته می شن.
فرق فریم ورک و کتابخانه
در فریم ورک ها خیلی از کارها رو از قبل برامون انجام دادن و کافیه تنها با فراخوانی اون امکانات و کاستومایز کردن اونها به راحتی می تونیم ازشون استفاده کنیم.
کتابخانه ها در واقع یه سری از توابع آماده هستن. مجموعه ای از ابزار های آماده که به هر نحوی بخواید می تونید از اونها استفاده کنید.
در کتابخانه ها شما هیچ محدودیتی ندارید و هر طوری بخواید می تونید باهاشون کار کنید. اما در فریم ورک ها برای شما یه سری قوانین تعریف می شه که باید ازشون استفاده کنید. مثل ساختار فایل ها و اسم گذاری توابع و …
چرا yii ؟
فریم ورک های زیادی برای کار هستند مثل cakephp و zend و … اما فریم ورک yii به خاطر بنچمارک های خوبی که داره و امکاناتی که در نظر گرفته شده انتخاب شده.
روش نصب:
در فولدر www فایل های فریم ورک yii رو اکسترکت می کنیم و شاخه رو به نام yii_education تغییر می دیم. برای اکسترکت کردن می تونید از دستور:
tar -zxvf [filename.tar.gz]
پس از این کار یه لینک می سازیم برای اینکه بعد ها وقتی خواستیم فریم ورک رو آپگرید بکنیم مشکلی در تغییر نام فولدرها نداشته باشیم و به راحتی آپگرید کنیم. برای این کار می تونید از این دستور استفاده کنید:
ln -s [foldername] yii
درواقع شاخه ی فریم ورک از شاخه ی پروژه ی ما جداست.
موارد مورد نیاز برای کار با yii
برای اینکه ببینید پیش نیازهای مورد نیاز برای کار با yii رو نصب دارید می تونید به آدرس زیر برید:
http://127.0.0.1/yii/requirements/

اگر این صفحه ی بالا رو می بینید ینی اینکه بدون مشکل می تونید باهاش کار کنید.
ساختن پروژه:
برای ساختن پروژه می تونید دستور زیر رو توی ترمینال اجرا کنید:
yii/framework/yiic webapp yii_education
با این دستور با استفاده از کتابخونه های اصلی در شاخه ی yii ما یه پروژه ی جدید ساختیم به نام yii_education .
وقتی دستور رو اجرا می کنید ازتون یه سوال می پرسه که می تونید با زدن yes پروژه رو به طور کامل بسازید.
ممکنه در برخی از سیستم ها خطای تابع date رو ببینید که با اضافه کردن یه خط در فایل index.php در شاخه ی yii_education این مشکل رو برطرف کنید:
date_default_timezone_set('Asia/Tehran');
ساختار yii:
controller در واقع بخش اصلی کار ما محسوب می شن. همه چیزبه کنترلر هدایت می شه و در کنترلر تصمیم گرفته می شه که چی کار باید کرد.
اگر قرار باشه از کنترلر به دیتابیس وصل بشیم و نیاز به گرفتن اطلاعات داشته باشیم با مmodel ارتباط برقرار می کنیم و برای نمایش اون اطلاعات از view استفاده می کنیم.

بر خلاف خیلی از فریم ورک ها که MVC رو به طور کامل پیاده سازی نکردن yii در این بخش خیلی خوب عمل کرده. در برخی از بخش ها ما حتی نیازی به کار با کنترولر نداریم و خود view به راحتی با model ارتباط برقرار می کنه و اطلاعات مورد نیاز رو که نیازی نیست در موردشون تصمیم گیری بشه نمایش می ده و عملن با این کار سرعت برنامه هم بیشتر می شه.
ساختار شاخه های yii :

assets: هر اسکریپتی (جاوااسکریپت یا سی اس اس ها) که متعلق به widget ها هستن بخشی از اونها داخل این شاخه قرار می گیره.
css : سی اس اس ها (اختیاری)
images : عکس های پروژه (اختیاری)
protected : اسکلت اصلی برنامه
themes : قالب هایی که برای سایت طراحی می کنیم داخل این شاخه قرار می گیره.
index.php : فایل صفحه ی اصلی که اجرا می شه
index-test.php : فایل ایندکس برای تست کردن
ساختن دیتابیس:
یه دیتابیس به نام yii_education می سازیم و داخلش یه جدول به نام tbl_news می سازیم با این ساختار:
[code language="sql"]
--
-- 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 ; فایل main.php رو در شاخه ی protected > config باز کنید و در خط ۵۵ این بخش رو uncomment کنید و اطلاعات مربوط به ارتباط با دیتابیس رو اضافه کنید:
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=yii_education',
'emulatePrepare' => true,
'username' => 'root',
'password' => '123456',
'charset' => 'utf8',
'tablePrefix' => 'tbl_',
),
و در خط ۲۱ در بخش ماژول این بخش رو هم از کامنت خارج کنید:
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'123456',
// If removed, Gii defaults to localhost only. Edit carefully to taste.
'ipFilters'=>array('127.0.0.1','::1'),
),
تولید کدها با yii code generator :
در مرورگر به آدرس زیر برید:
http://127.0.0.1/yii_education/index.php?r=gii
پسوردی رو که در بخش ماژول ها ساختید بزنید و وارد بخش ساخت کدها بشید.

به بخش Model Genetator برید و نام جدول رو کامل بنویسید و Preview رو بزنید.
توجه کنید که فعلن چون روی لوکال هاست کار می کنیم مجوز دسترسی همه ی فایل ها رو ۷۷۷ می کنیم تا yii بتونه فایل هاش رو بسازه.
بعد از پریویو کلید generate رو می زنید و بعد به بخش Crud Generator می رید و دوباره crud رو با همون روش قبلی بسازید.

روی لینک try it now کلیک کنید. باید برای لاگین کردن یوزر admin و password رو هم admin وارد کنید و از اپلیکیشن کوچیکی که ساختید لذت ببرید.
برای جلسه ی بعد روی جدول users کار می کنیم و یه بخش لاگین و مدیریت بخش کاربری می نویسم برای سایتمون.
به مرور کم کم این سایت رو تبدیل می کنیم به یه سایت خبری کوچیک.
موافقین ۰ مخالفین ۰ ۹۱/۰۶/۲۷

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی