لینکدونی

ساخت لینکدونی با CakePHP (بخش سوم)

October 24, 2008 at 01:10 am

پیش نیازها: ساخت لینکدونی با CakePHP (بخش اول) و (بخش دوم)
در مراحل قبل داده‌ها را از دیتابیس خواندیم و در قالب لینک نمایش دادیم. در این بخش قصد داریم امکان افزودن لینک جدید، ویرایش و حذف لینک را اضافه کنیم و مختصری هم با Routes در کیک پی‌اچ‌پی آشنا شویم.

ساخت فرم و افزودن لینک

طبق نمونه‌های گذشته به فایل links_controller.php کنش add را بصورت زیر اضافه می‌کنیم تا بتوانیم لینک‌های جدیدی در دیتابیس اضافه کنیم:

< ?php
class LinksController extends AppController {
  var $name = 'Links';
  function index() {
    $this->set('links', $this->Link->find('all'));
  }     
  function view($id = null) {
    $this->Link->id = $id;
    $this->set('link', $this->Link->read());
  }       
  function add() {
    if (!empty($this->data)) {
     if ($this->Link->save($this->data)) {
$this->flash('Your link has been saved.', '/links');
     }
    }
  }  
}
?>

تابع add را به این صورت تعریف می‌کنیم که چنانچه فرم ارسال شده خالی نبود، با استفاده از مدل Link سعی شود داده ذخیره شود اما چنانچه بنا به دلایلی ذخیره نشد، نما نمایش داده شود. این خود فرصتی را در اختیارمان قرار می‌دهد تا خطاهای ناشی از محتوای فیلدهای ارسالی را نمایش دهیم. ادامه مطلب …

ساخت لینکدونی با CakePHP (بخش دوم)

October 23, 2008 at 01:13 am

پیش نیاز: ساخت لینکدونی با CakePHP (بخش اول)
در پست قبل تا ساخت پایگاه‌ داده و مقداردهی فایل database.php بمنظور ارتباط با MySQL پیش رفتیم. حال یک جدول بنام links با شش فیلد زیر در دیتابیس linkdump که قبلاً ساخته‌ایم ایجاد می‌کنیم. همچنین جهت تست دو لینک اضافه می‌کنیم:

/* First, create our links table: */
CREATE TABLE links (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
url VARCHAR(255),
title VARCHAR(255),
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
/* Then insert some links for testing: */
INSERT INTO links (url, title, body, created) VALUES
('http://alvanweb.com', 'Alvanweb', 'All about web design and progrmming', NOW()),
('http://cakephp.org', 'CakePHP', 'The rapid development php framework', NOW());

نام‌ جدول و ستون‌ها اختیاری نیستند! اگر از قواعد نامگذاری جداول و کلاس‌های کیک پیروی کنید خواهید توانست از مزایای توابع توکار کیک بدون پیکر‌بندی براحتی استفاده کنید. کیک تا انجا انعطاف پذیر است که حتی با وجود عدم تطابق با طرح‌های پیشفرض می‌توانید آن را سفارشی کنید اما استفاده از قواعد در صرفه‌جویی زمان موثر است.

برای اطلاعات بیشتر در مورد این قواعد نامگذاری اینجا را ببینید. اما همین اندازه کافی است که بدانید جدول links بطور خودکار به مدلی بنام link اشاره دارد و همچنین فیلدهای created و modified بطور منطقی و خودکار توسط کیک مدیریت می‌شوند. ادامه مطلب …

ساخت لینکدونی با CakePHP (بخش اول)

October 22, 2008 at 08:33 pm

در پست قبل با فریم‌ورک قدرتمند CakePHP و ساختار MVC آشنا شدیم. از آنجایی که فراگیری این ساختار جز با تمرین و در عمل ممکن نیست، در این پست و پست‌های آتی قصد داریم یک پروژه‌ی کوچک را با این فریم‌ورک مرحله به مرحله با هم دنبال کنیم. در ابتدا ساخت یک لینکدونی ساده که قابلیت افزودن، ویرایش و حذف لینک را دارد هدف نهایی است و در مرحله بعد در صورتیکه فرصت محدودم اجازه بیشتری بدهد قابلیت‌های دیگری نظیر شمارش کلیک، دسته‌بندی و امکان نظر‌دهی افزوده خواهد شد.

آنچه برای شروع کار با کیک مورد نیاز است

1) سرور HTTP،‌ ترجیاً Apache با mod_rewrite فعال (برای کاربرپسند کردن URL‌ها و کار با فایل‌های htaccess بهتر است قابلیت mod rewrite را فعال کنید. بدین منظور می‌بایستی فایل httpd.conf سرور آپاچی را ویرایش کنید)

2) پی‌‌اچ‌پی 4.3.2 یا بالاتر، کیک پی‌اچ‌پی با نسخه‌های 4 و 5 پی‌اچ‌پی کاملاً سازگار است. برای نصب PHP تحت ویندوز خواندن این مطلب پیشنهاد می‌شود.

برای اجرای کیک موارد فوق کافی است اما در مورد ساخت لینکدونی به یک پایگاه داده نیاز داریم. ترجیحاً از MySQL استفاده می‌کنیم. برای نصب و راه‌اندازی مای ‌اس‌کیو‌ال سرور، خواندن این مطلب پیشنهاد می‌شود. لازم به ذکر است، CakePHP علاوه بر MySQL از پایگا‌ه‌های داده زیر پشتیبانی می‌کند:

  • PostgreSQL| Firebird DB2 | Microsoft SQL Server | Oracle | SQLite | ODBC

برای راحت‌کار کردن با MySQL بهتر است از رابط تحت وب phpmyadmin استفاده کنید یا با استفاده از رابط گرافیکی MySQL GUI Tools دیتابیس را مدیریت کنید. ادامه مطلب …

مقدمه‌ای بر معماری MVC در CakePHP

September 21, 2008 at 06:47 pm

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

1- Model مدل به داده برنامه اشاره دارد (معمولا جداول پایگاه داده). 2- View شاید هیچ لفظ فارسی جز خود این واژه نتونه جایگزین خوبی باشه اما این واژه را “نما” تعریف می‌کنم. نما در حقیقت یه رندر تصویری از داده مدل هست که در انتها به مرورگر کاربر ارسال میشه. 3- Controller کنترل کننده (کنترلر) درخواست‌هایی که توسط کلاینت ایجاد شده را بررسی و به یه مسیر صحیح هدایت می کند.

نمودار زیر چرخه معماری MVC را در CakePHP توضیح می ده:

A Basic MVC Request

برای مثال فرض کنید یه کلاینت بنام ریکاردو بر روی یک لینک (بالفرض خرید کیک که لینکی شبیه زیر داره) در صفحه اصلی برنامه کلیک کنه بنابراین درخواست از مرورگر وی به وب سرور منتقل می‌شه.

http://www.example.com/cakes/buy

در اینجا dispatcher آدرس درخواستی رو بررسی می‌کنه (cakes/buy/) و این درخواست رو به یک کنترلر صحیح هدایت می‌کند. کنترلر، منطق مشخص برنامه رو انجام می‌ده، برای مثال چک می کنه آیا ریکاردو تا حالا لاگین کرده یا نه. علاوه براین کنترلر بمنظور دستیابی به داده‌های برنامه از مدل ها استفاده می کنه. مدل ها معمولا نمایانگر جداول پایگاه داده هستند اما می تونن معرف ورودی‌های LDAP، فیدهای RSS یا فایل‌های روی سیستم هم باشند. بعنوان مثال در اینجا کنترلر یه مدل رو به کار می‌بره تا آخرین خرید ریکاردو رو از دیتابیس بکشه بیرون (به اصطلاح Fetch کنه). ادامه مطلب …

نوروفيدبک اروميه پرسش پاسخ پزشکی
Page: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ... | 40