استفاده از jQuery برای صفحه‌بندی در CakePHP

May 31, 2009 at 12:32 am

بعد از یک مدت تقریبا طولانی ننوشتن در اینجا، در این پست قصد دارم به طور خلاصه درمورد آژاکسی کردن صفحه‌بندی پیشفرض CakePHP توسط jQuery بنویسم.
ابتدا آخرین نسخه‌ی jQuery را دریافت و آن را به صورت زیر در layout فراخوانی کنید. دقت کنید jQuery تان ویرایش 1.3 یا به بالا باشد چون قرار است از تابع live که در این ویرایش افزوده شده است استفاده کنیم:

<?php
echo $javascript->link('jquery-1.3.2.min');
?>

پیشنهاد می‌کنم برای تکه کد زیر که قرار است درخواست‌ کلیک بر روی لینک صفحات را به صورت آژاکس ایجاد کند، یک فایل js جدید بسازید یا اینکه می‌توانید آن‌ را مستقیم در layout اضافه کنید:

$('a[href*=/page:]').live('click', function(){
    $('#content').load($(this).attr('href'));
    return false;
});

کار تمام است با کلیک بر روی شماره صفحات محتوا به صورت آژاکس بارگذاری می‌شود. اما یکسری نکات ریز که شاید از قلم انداخته باشید:

کامپوننت RequestHandler را می‌بایستی به کنترلرتان افزوده باشید. دلیل آن روشن است چرا که باید نوع تقاضای کنترلر را، تشخیص دهد و layout را بصورت خودکار به Ajax تبدیل کند. برای درک بیشتر این موضوع پیشنهاد می‌کنم تغییرات بوجود آمده درپی افزودن یا حذف این کامپوننت را از طریق کنسول FireBug دنبال کنید. ادامه مطلب …

کاربرد کامپوننت Authentication در CakePHP

March 11, 2009 at 10:34 pm

در این پست با یک مثال کاربردی به معرفی کامپوننت Authentication در فریم‌ورک قدرتمند CakePHP خواهیم پرداخت. بصورت ساده یک مدل تصدیق هویت کاربر ایجاد می‌کنیم که برای ورود به بخش مدیریت، کاربر می‌باید وارد سیستم شود. در پست بعدی در مورد تصدیق هویت در کیک، با اضافه کردن دو کامپوننت ACL و Cookie سیستم پایدارتری ایجاد خواهیم کرد.

در این آموزش فرض شده است اصول کار با کیک را فراگرفته‌اید. می‌توانید کیک را نصب کنید، تنظیمات اولیه را مقداردهی کنید و Cake Bake (پختن کیک) را با کنسول انجام دهید و … اگر آماده نیستید به سری آموزش‌های قبل (ساخت لینکدونی با CakePHP) رجوع کنید و بعدا برگردید. ضمنا از آخرین نسخه پایدار CakePHP و PHP 5 استفاده می‌کنیم.

خوشبختانه نصب و بکارگیری کامپوننت توکار auth ساده‌ترین شکل ممکن برای داشتن یک سیستم ورود کاربر است. مانند همه کامپوننت‌ها، با افزودن ‘Auth’ به پارامتر $components کامپوننت به کنترلر شما افزوده می‌شود. چون قصد داریم از این کامپوننت در دیگر کنترلر‌ها نیز استفاده کنیم برای جلوگیری از تکرار، آن را به AppController اضافه می‌کنیم. بنابراین فایلی بنام app_controller.php در شاخه اصلی app تان با محتوای زیر ایجاد کنید:

class AppController extends Controller {
	var $components = array('Auth');
}

روشن است که چون دیگر کنترلر‌ها فرزند AppController هستند خصوصیات آن را به ارث خواهند برد. بگذارید کمی در مورد قوانین توکار این کامپوننت بگویم. بطور پیشفرض این کامپوننت انتظار دارد شما جدولی بنام users با فیلدهایی بنام username و password داشته باشید.‌ اما در برخی موارد خاص، پایگاه داده بدلایل امنیتی اجازه نمی‌دهد که برای یک فیلد نام password را انتخاب کنید. مشکلی نیست ما این عرف را برهم میزنیم و از نام دلخواه خودمان استفاده می‌کنیم. ابتدا یک جدول بصورت زیر بسازید: ادامه مطلب …

نحوه کارکرد سیستم تصدیق هویت در CakePHP

March 5, 2009 at 09:49 am

از آنجایی که قصد داشتم در مورد کامپوننت‌های ACL و Authentication در کیک پی‌اچ‌پی بنویسم (و خیلی‌ها کار با ACL در کیک را از مباحث دشوار می‌دانند)، بهتر دیدم برای فهم بیشتر پست‌های آینده، ابتدا مختصری بصورت تئوری در مورد یک مدل تصدیق هویت کاربر توضیح دهم و سپس با مثال‌های عملی شروع کنم.

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

این کامپوننت می تواند با کامپوننت دیگری بنام Access Control Lists برای ساخت مدل‌های پیچیده‌تری که سطوح مختلفی از دسترسی را تعیین می‌کند، ترکیب شود. برای مثال به یک کاربر مجوز دسترسی به بخش‌های عمومی، به دیگری اجازه ویرایش مطالب و به کاربری دیگر مجوز مدیر سیستم را بدهد.

کار با کامپوننت authentication بطور باورنکردنی ساده‌ و سریع است اما کاربرد کامپوننت ACL شاید برای بار اولی که از ان استفاده می‌کنید کمی مشکل‌تر باشد اما با یادگیری کاربرد آن به یکی از جالب‌ترین و پرقدرت ترین کامپوننت‌های توکار کیک تبدیل خواهد شد. برای شروع یک سناریو ساده به شکل زیر را که در عمل صورت می‌گیرد تصور کنید:

1- تلاش برای مشاهده آدرس. در ابتدا فرض کنید کاربری بنام محسن سعی میکند محتویات صفحه‌ایی به آدرس http://alvanweb.com/article/edit را مشاهده کند.

2- تجزیه‌ آدرس. هنگامی که درخواست کاربر از طریق مرورگر ارسال می‌شود، کامپوننت authentication تشخیص می‌دهد که آدرس درخواستی با کنترلری بنام article و کنشی بنام edit (که خود با کنشی از نوع update رابطه دارد) در ارتباط است.

3- آیا صفحه محدود شده است؟ همچنین این کامپوننت تشخیص می‌دهد که دسترسی به این کنش در کنترلر article محدود شده است. بنابراین بررسی می‌کند که آیا کاربر وارد سیستم شده است یا خیر. ادامه مطلب …

معرفی کتاب: برنامه‌نویسی پیشرفته در پی‌اچ‌پی

February 28, 2009 at 01:02 am

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

Advanced PHP Programming Book Review

کتابی که برای این پست در نظر گرفته‌‌ام کتاب برنامه‌نویسی پیشرفته در پی‌اچ‌پی نوشته جورج شلاس‌نیگل است (مشخصات دقیق لاتین و ترجمه کتاب در انتهای پست آمده است). اولین چاپ کتاب فوریه سال 2004 بوده و در اسفندماه 1385 توسط مهندس محسن مسگر هروی تحت نام برنامه‌نویسی پیشرفته در PHP 5 به زبان فارسی ترجمه شده است.

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

برخلاف عنوان فارسی و همچنین توضیح روی جلد لاتین، محتوا کاملا منطبق با PHP 5 نیست و هیچ چیز به طور خاص محدود به PHP 5 نمی‌شود! کتاب بیشتر روی ایده‌ها و استراتژی‌ها (بخصوص در قسمت بهبود کد به منظور افزایش سرعت، دقت و طراحی) تمرکز کرده است و صرفا یک آموزش گام به گام نیست و از این جنبه در کتاب‌های نوع خود عالیست. ادامه مطلب …

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