ساخت لینکدونی با 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 کنه). ادامه مطلب …

کار با CakePHP

September 18, 2008 at 01:12 am

بیشتر پروژه‌ها را تاجایی که امکان داره با CakePHP انجام میدم. ساختار MVC، معتبرسازی توکار، سفارشی کردن URL‌ها و انعطاف پذیری فوق العاده، دلایل عمده من برای انتخاب این فریم‌ورک PHP هستن. فکر میکنم کسانی که با Ruby on Rails کار کردن حرفمو تایید کنن.

منابع زیادی برای آموزش این فریم‌ورک روی وب هست. برای دو نسخه 1.1 و 1.2 که با هم تفاوت‌هایی دارند، بطور جداگانه راهنمای کاملی در سایت اصلی کیک پی‌اچ‌پی موجوده. قسمت مثال‌ها و بخصوص The Cake Blog Tutorial محبوب‌ترین قسمت این راهنما است. در این آموزش یاد میگیرید که چطور بر پایه این فریم‌ورک یه وبلاگ ساده بسازید.

هدفم از کیک پی‌اچ‌پی و راهنما گفتنش معرفی پست‌های James Fairhurst در این رابطه هست. حدود آوریل امسال James یه سری آموزش در رابطه با ایجاد یک کاتالوگ DVD با CakePHP‌ رو شروع کرد. این آموزش‌ شامل 12 قسمته که دو هفته قبل قسمت آخرش تموم شد. لیست این پست ها رو در زیر آوردم که انصافا‍ یکی از دیگری بهتره:

  • + Part 1: Setup of CakePHP and creation of the tables and models
    + Part 2: Creating the first controller and the corresponding views
    + Part 3: Creating two more controllers with the respective views
    + Part 4: File upload and introduction of jQuery
    + Part 5: Working with a HABTM association
    + Part 6: Adding authentication to the application
    + Part 7: Graphical design of the application
    + Part 8: Realizing the design with HTML and CSS
    + Part 9: Introduction to layouts and elements
    + Part 10: Defining the start page
    + Part 11: Using requestAction
    + Part 12: Finishing the application

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

افزایش سرعت بارگذاری فایل‌های PHP

February 5, 2008 at 04:41 pm

در وبگردی ‌های امروز با PHP Speedy آشنا شدم. این اسکریپت پی‌اچ‌پی بطور قابل ملاحظه‌ای زمان بارگذاری ‌فایل‌های پی‌اچ‌پی را کاهش می‌دهد.

PHP Speedy بطور خودکار تمام فایل‌های لازم را با یكدیگر ترکیب و بصورت فشرده در می‌آورد که این خود بار درخواستی سرور و همچنین اندازه فایل‌ها را کاهش می‌دهد. در نتیچه زمان بارگذاری کاهش خواهد یافت.

این اسکریپت به دو صورت خودکار و دستی می‌تواند نصب شود. بعد از نصب، کدهای این اسکریپت می‌بایستی درابتدای فایل اصلی وب‌سایت (در بیشتر موارد index.php) الحاق شود. نتایج زیر را مشاهده کنید:

قبل از نصب اسکریپت (14 درخواست در مدت زمان 4.44 ثانیه)

PHP Speedy

بعد از نصب اسکریپت (4 درخواست در مدت زمان 1.1 ثانیه)

PHP Speedy

اگر Firebug بر روی مرورگرتان ندارید تفاوت را با این ابزار آنلاین (Pingdom) میتوانید مشاهده کنید. قبلا Pingdom در این یادداشت بطور کامل معرفی شد.

فشرده سازی CSS به کمک PHP

August 29, 2006 at 10:27 am

فشرده سازی CSS روش ماهرانه ای برای ذخیره کمی از پهنای باند، به خصوص برای سایت های پیچیده ای که بیش از هزار خط کد دارند به شمار می رود. سایت های زیادی وجود دارد که به عنوان ورودی کدهای CSS شما را می گیرد و فشرده شده تحویلتان می دهد اما مشکل اینجاست که شما باید فایل فشرده شده را دریافت و مجددا جایگزین کنید و یا اگر بخواهید در آینده فایلتان را ویرایش کنید، یافتن المان ها کمی مشکل تر خواهد بود. جدای از آن پس از افزودن المان های جدید باز هم چاره ای جز فشرده سازی مجدد ندارید.

البته برای من و شما که شاید فایل CSS مان 100 خط کد هم نداشته باشد این روش کمی خنده دار به نظر می رسد اما سایتی را تصور کنید که ده ها فایل CSS دارد، قطعا این روش در کاهش اتلاف وقت توسعه دهنده، موثر خواهد بود.

برای حل مشکلاتی که در فوق ذکر شد، از چند خط کد پی اچ پی برای فشرده سازی اتوماتیک CSS استفاده می کنیم. این متد کار را به این نحو برایمان انجام می دهد: 1) به طور معمول مرورگر کاربر، فایل CSS را درخواست می کند 2) سرور با قدرت PHP کدهای CSS را فشرده می کند 3) در نهایت کمپرس شده CSS، به مرورگر ارسال می شود. همه عملیات بدون اینکه کاربر متوجه شود اتفاق می افتد. بهتر از همه اینکه کدهای CSS شما دست نخورده باقی می ماند و شما به سهولت می توانید آن ها را آپدیت کنید. ادامه مطلب …

Page: 1 | 2 | 3 | 4 | 5 | 6