قسمت دوم (شروع کدنویسی) :
در این قسمت میخوایم اولین کنترلر برنامه رو بنویسیم .
این کنترلر 1 متد داره وکار این متد نمایش پست های بلاگمون هست . در اصل این متد صفحه اصلی هم محسوب میشه .
1. اول به مسیر زیر برید و یک فایل به اسم main_controller.php ایجاد کنید . حتما دقت کنید که اسم فایل دقیقا به همین شکل باشه :
کد:
CAKEPATH/app/controller
2. درون این فایل کد های زیر رو قرار بدید .
نکته : اگه این کد ها رو خودتون بنویسید بهتر یاد میگیرید .
نکته : به کوچکی و بزرگی حروف دقت کنید چون که اهمیت زیادی داره .
کد PHP:
<?php
class MainController extends AppController {
var $name = 'Main';
var $uses = array('Post');
function index() {
$this->set('posts', $this->Post->find('all', array('order' => 'id DESC')));
}
}
?>
در خط اول ما کلاسی به اسم MainController ایجاد کردیم .
در خط دوم نام این کنترلر رو مشخص کردیم.
در خط سوم به کنترلر گفتیم که از مودلی به اسم Post استفاده کنه .
در خط چهارم متد index رو ایجاد کردیم .
اما در خط 5 : CakePHP یک متد خیلی مهم داره به اسم set . کاره این متد اینه که یک متغیر دلخواه رو مقداردهی کنه و به سمت view ارسال کنه . ما در اینجا با استفاده از این متد متغیر posts رو با یک آرایه مقداردهی کردیم .
در مورد خط زیر :
کد PHP:
$this->Post->find('all', array('order' => 'id DESC')
این کد از مودل Post برای گرفتن تمامی پست های موجود در جدول posts استفاده میکنه و اونها رو برای اساس id به شکل descending مرتب می کنه .
خوب الآن دیگه کار کنترلر تموم شد .
حالا بریم سراغ جدول posts در دیتابیس .
کد SQL زیر رو در PHPMyAdmin اجرا کنید :
کد:
CREATE TABLE IF NOT EXISTS `posts` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` text CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
`content` text CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `cakeblog`.`posts` (
`id` ,
`title` ,
`content`
)
VALUES (
NULL , 'تست 1', 'اولین پست در Cake Blog'
), (
NULL , 'سلام', 'این پست جدید تر از تست 1 است پس باید بالا تر قرار بگیرد .'
);
این کد کارخاصی نمی کنه پس نیازی به توضیح نیست .
حالا به مسیر زیر برید و فایل به اسم post.php ایجاد کنید :
حالا درون این فایل کد های زیر رو قرار بدید :
کد PHP:
<?php
class Post extends AppModel {
var $name = 'Post';
}
?>
در خط اول کلاسی به اسم Post ایجاد کردیم .
در خط دوم هم اسم این مودل رو تعریف کردیم .
خب کار مودل و دیتابیس هم تموم شد . الآن نوبته view هست .
دوباره به مسیر زیر برید و یک فولدر به اسم main ایجاد کنید و درون این فولدر فایلی به اسم index.ctp ایجاد کنید :
حالا کد های زیر رو در این فایل قرار بدید :
کد PHP:
<div style="font-family:tahoma; size:12px; direction:rtl; text-align:right">
<?php foreach($posts as $post) {?>
<h3><?php echo $post['Post']['title'];?></h3>
<p><?php echo $post['Post']['content']; ?></p>
<br />
<hr />
<?php } ?>
</div>
خوب حالا به آدرس زیر برید :
کد:
http://localhost/main
خوب این قسمت هم تموم شد .
می دونم نقاط ضعف زیادی داشت اما به بزرگی خودتون ببخشید .
اگه جاییش رو هم متوجه نشدید بگید بیشتر توضیح بدم .