این روزها، پروژه FeedRoll

January 2, 2009 at 07:31 pm

قرار بود دسامبر سال قبل این مطلب رو بنویسم اما بنابر گرفتاری همیشگی و مشکلی که برای هاست پروژه جدید پیش اومد فرصت نشد. مدت‌ها پیش (همان زمان‌هایی که سرور بلاگرولینگ مرتبا به علت پینگ‌های زیاد از کار می‌افتاد) قصد داشتم سیستمی مشابه بلاگرولینگ با استفاده از فید بنویسم اما فرصت زیادی نداشتم.

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

خوشبختانه تا امروز با وجود کمبود وقتی که داشتم این وب اپلیکیشن کوچک رو تا یه جایی رسوندم نتیجه‌اش هم بلاگرول همین‌جاست. بعلت پهنای باند محدودم مجبور شدم فعلا پروژه را روی یک سرور رایگان ران کنم. هنوز پروژه تکمیل نشده و اگه فرصتم اجازه بده روی مولتی یوزر بودنش کار می‌کنم. (البته خبرهای خوشی از تیم توسعه بلاگرولینگ به گوش میرسه شاید تا اون زمان دوباره همه برگشتیم)

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

لیست بلاگرول اینجا هر 15 دقیقه رفرش می‌شه خروجی فید بلاگرول من هم اینجاست. این‌ها همه رو گفتم برای این که بگم با گسترش کاربرد فید‌ها تگ pubDate خیلی مهمه. خیلی‌ها هنوز آیتم‌های فیدشون این برچسپ رو نداره یا مقدارش معتبر نیست!

پیکربندی Eclipse برای کار با CakePHP (بخش اول)

November 26, 2008 at 09:31 pm

از آنجایی که خیلی از دوستان در رابطه با انتخاب یک IDE مناسب برای کار با کیک با مشکل مواجه بودند. این پست نوشته شد، امیدوارم مفید واقع شود. در این پست و پست آتی تنظیمات ادیتور قدرتمند Eclipse برای کار با فریم‌ورک CakePHP به ترتیب زیر آورده شده است:

  • + بخش اول:
    1- معرفی اجمالی Eclipse و ایجاد workspace و project
    2- پیوند هسته کیک به پروژه جهت استفاده از قابلیت‌های توکار Eclipse
    3- پیکربندی برای شناسایی فایل‌های thtml یا ctp
    4- پیکربندی برای طبخ کیک بطور مستقیم با کنسول CakePHP

    + بخش دوم:
    5- دسترسی به پایگاه داده MySQL به کمک پلاگ‌‌این QuantumDB
    6- افزودن پشتیبانی از Subversion به کمک پلاگ‌این Subclipse

    آنچه بدین منظور نیاز دارید:
    +‌ نسخه‌ای از Eclipse که شامل ابزارهای توسعه‌ی پی‌اچ‌پی است (3.3.2)
    + نسخه‌ای از XAMPP که بطور پیشفرض در C:xampp نصب شده است
    + نسخه‌ای از CakePHP که بطور پیشفرض در C:xampphtdocscake قرار دارد
    + سیستم عامل ویندوز ایکس‌پی

چرا از Eclipse استفاده می‌کنم؟
اول اینکه کد باز است و تعداد زیادی پلاگ‌این برای آن نوشته شده است که همه‌ی نیازهای یک توسعه دهنده‌ی وب را پوشش می‌دهد بطوریکه با اطمینان می توان گفت این نرم‌افزار به تنهایی یک توسعه دهنده را راضی خواهد کرد.

دوم اینکه بزرگ و قدتمند است اما در عین حال ساده برای بکارگیری. Eclipse یک IDE خاص نیست بلکه برای طیف وسیعی از زبان‌های برنامه‌نویسی منتشر شده است. حتی خیلی از ادیتورهایی که جدیدا عرضه می‌شوند بر پایه‌ی Eclipse بنا شده‌اند. از آن جمله می‌توان نرم‌افزار Carbide.ui Theme Edition شرکت نوکیا که برای طراحی تم‌های گوشی‌های موبایل ساخته شده است را نام برد یا جای دوری نرویم همین Aptana که برای کار با فریم‌ورک‌های جاوااسکریپت پیشنهاد می‌شود و … ادامه مطلب …

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

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