ماژول ZF2Base

zendframework_logo

بعد از مدت ها ماژول اولیه ای که توی پروژه ها استفاده میکردم رو ارتقا دادم و zf2base رو برای Zend Framework 2 نوشتم. کار این ماژول تعیین و بررسی سطح دسترسی ها به هر ماژول کنترلر یا اکشن و یا متد هست بدون اینکه مجبور باشید کدی توی ماژول های دیگه بنویسید. (بیشتر…)

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

zf2-structure

این مطلب شاید شروع استفاده کاربردی از زند فریم ورک 2 باشه. در این مطلب به معرفی پوشه ها و فایل های موجود در زند فریم ورک ۲ خواهیم پرداخت. در مطلب بعدی به نحوه نصب زند فریم ورک ۲ می پردازیم. در زند فریم ورک ۲ شما 95 درصد زمان کد نویسی را به نوشتن ماژول اختصاص خواهید داد. تمام کد های اصلی شما در پوشه module قرار دارند. (بیشتر…)

زند فریم ورک 2 – مثالی در رابطه با Event Manager

events-small

در مطلب مربوط به زند فریم ورک ۲ – Event Manager در رابطه با Event Manager بحث کردیم. اما در این مطلب یک مثال کاربردی از این الگو را نمایش خواهیم داد. در یکی از پروژه هایی که کار کردم نیاز بود که تمام ورود های کاربران بر اساس زمان ورود آنها در سیستم ثبت شده و در نهایت گزارشی از این اطلاعات تهیه شود. در این مورد از  Event Manager استفاده کردم تا رویدادی را با نام auth.login ایجاد نمایم و با استفاده از listener کار ثبت اطلاعات را در پایگاه داده انجام دهم. (بیشتر…)

زند فریم ورک ۲ – Event Manager

events-small

Event Manager یکی از مباحث کاربردی برنامه نویسی است که جدای از اینکه در زند فریم ورک 2 کاربرد فراوانی دارد در پروژه های برنامه نویسی دیگر نیز میتوان از این الگو و ساختار استفاده کرد تا نرم افزاری بهتر و سالم تر ایجاد کرد. این امکان قابلیتی به نام رویداد ها را به پروژه شما اضافه میکند. رویداد ها در واقع اتفاقاتی هستند که شما آنها را در پروژه تعریف کرده اید. (بیشتر…)

زند فریم ورک ۲ – Observer pattern

Observer-pattern

یکی از الگوهای طراحی نرم افزار Observer pattern است. در زند فریم ورک ۲ در قالب Event manager از این الگو استفاده شده است. این الگو به شما کمک میکند تا کلاس های مستقل تری داشته باشید. همانطور که در مطالب قبلی گفتم, کلاس ها هرچه قدر مستقل تر باشند امکان استفاده مجدد از آنها بیشتر و راحت تر است. همچنین باعث راحت تر شدن مدیریت کلاس ها خواهد شد. (بیشتر…)

زند فریم ورک ۲ – AOP

Aspect-Oriented-Programming

AOP مخفف Aspect Oriented Programming به مفهوم برنامه نویسی جنبه گراست و همواره در کنار مدل OOP استفاده می شود. برای مثال در برخی از پروژه ها ممکن است نیاز داشته باشید تا سطوح مختلف دسترسی به هر یک از کلاس ها و توابع را بررسی نمایید. در این مثال در برنامه نویسی OOP شما بایستی در هریک از متد ها و کلاس ها کد های مورد نظر را برای بررسی سطح دسترسی اضافه نمایید. اما در برنامه نویسی جنبه گرا بدون تغییر کد اصلی میتوانید مواردی را مانند رویداد به برنامه خود افزوده و در این مثال به عنوان رویداد ورود به یک متد, سطوح دسترسی را بررسی نمایید. (بیشتر…)

زند فریم ورک ۲ – تنظیم سرویس ها

zendframework_logo

در زند فریم ورک ۲ برای استفاده از Service locator با چند نوع از سرویس ها روبرو خواهیم شد. در این مطلب به بررسی آنها خواهیم پرداخت.

قبل از شروع این مطلب بهتر است مطلب قبلی با عنوان زند فریم ورک ۲ – Service Locator/Manager را مطالعه نمایید.

برای تعریف یک سرویس جدید برای استفاده در زند فریم ورک ۲ می توانیم از تنظیماتی که در ادامه شرح داده خواهد شد استفاده نماییم. در این مطلب صرفا به بررسی انواع تنظیمات سرویس ها خواهیم پرداخت و در رابطه با محل قرارگیری کد ها و نحوه نوشتن آنها در آینده بحث خواهیم کرد. (بیشتر…)

زند فریم ورک ۲ – Service Locator/Manager

zend-framework-2-cheat-sheet-start

وقتی که پروژه ای رو می خواهید شروع کنید بهترین حالت طراحی اینه که تا حد امکان بخش های مختلف پروژه مستقل از هم باشه. Service Manager در زند فریم ورک 2 قابلیتی رو برای شما فراهم میکنه تا مدیریت ماژول های مختلف یک پروژه, علاوه بر اینکه در بخشی به نام Services متمرکز میشه, باعث افزایش انعطاف پذیری پروژه هم خواهد شد. با مراجعه به مطالب قبلی که در رابطه با Dependency Injection یا تزریق وابستگی گفته شد حالا به ابزار Service Manager نیاز پیدا خواهید کرد. (بیشتر…)

زند فریم ورک ۲ – Factory method pattern

FactoryMethodPattern

Factory در برنامه نویسی شی گرا به کلاسی گفته می شود که از طریق متد های آن کلاس های دیگری ایجاد می شود. Factory method pattern به عنوان یک ساختار برای پیاده سازی Factory و استفاده از Factory method ها مطرح شد. استفاده از این روش باعث می شود تا مدیریت کلاس های مرتبط با هم راحت تر شود. Factory ها کلاس های سازنده ی کلاس های دیگر هستند. (بیشتر…)

زند فریم ورک ۲ – Lazy loading

LazyLoadingUml

این تکنولوژی که در زند فریم ورک ۲ استفاده شده است باعث افزایش بهره وری می شود. به طوری که بارگذاری اولیه یک شی یا کلاس را به تاخیر می اندازد تا زمانی که اولین بار این کلاس یا شی مورد استفاده قرار گیرد. به این معنی که اگر شما کلاسی را ایجاد کرده باشید تا زمانی که از این کلاس استفاده ای نکرده اید پردازشی روی آن انجام نمی گیرد.

نقطه مقابل این تکنولوژی eager loading است که کلاس های ایجاد شده به طور کامل آماده (پردازش) می شوند حتی اگر استفاده نشوند. (بیشتر…)