لینکدونی

نحوه کارکرد سیستم تصدیق هویت در 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 نمی‌شود! کتاب بیشتر روی ایده‌ها و استراتژی‌ها (بخصوص در قسمت بهبود کد به منظور افزایش سرعت، دقت و طراحی) تمرکز کرده است و صرفا یک آموزش گام به گام نیست و از این جنبه در کتاب‌های نوع خود عالیست. ادامه مطلب …

معرفی فیدرول نسخه 1.2.0

January 21, 2009 at 01:58 am

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

صفحه اصلی پروژه فیدرول

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

  • قابلیت‌های فعلی:
    + امکان افزودن خوراک وبلاگ‌ به‌نهایت سادگی و آگاهی از وضعیت آن
    + بروزرسانی خوراک‌ها هر 5 دقیقه یکبار
    + منظم سازی بر اساس زمان بروزرسانی، حروف الفبا، تعداد مشترکین فید‌برنر
    + نمایش عنوان 10 مطلب اخیر وبلاگ‌های ثبت شده
    + جستجوی پیشرفته در نام‌وبلاگ‌ها، زمان بروز‌رسانی و تعداد مشترکین فیدبرنر
    + خروجی RSS با قابلیت سفارشی‌سازی

تمام قابلیت‌های فوق توسط آژاکس (تماماً کتابخانه JQuery) و زبان قدرتمند PHP و بانک اطلاعاتی MySQl پیاده‌سازی شده و سعی شده نهایت کاربر پسند بودن در آن لحاظ شود. برخلاف خواسته‌ام ناگزیر شدم CakePHP را در این پروژه کنار بگذارم و کلاس‌ها را از نو بنویسم.

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

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

January 2, 2009 at 07:31 pm

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

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

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

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

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

Page: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ... | 39