ماژول ZF2Base

zendframework_logo

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

ادامه مطلب

مفهوم SOLID در برنامه نویسی – OCP

open-close-principle

SOLID مخفف چند مفهوم مختلف هست که فهم این مطالب میتواند شما را در هنر برنامه نویسی به سطح پیشرفته تری برساند.

در این مطلب به  تشریح بخش دوم این مفاهیم خواهیم پرداخت. بخش دوم شامل مفهوم Open/Close Principle یا به طور خلاصه OCP می باشد.

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

ادامه مطلب

رفع ایرادات و اشکالات وب سرور Apache – بخش چهارم

Apache Web Server

Debug کردن یک برنامه که دارای چندین Process است کار سختی است. وب سرور  Apache نیز در هنگام فعالیت چندین Process از خود ایجاد می کند؛ اما می توانید به هنگام نیاز وب سرور را طوری تنظیم کنید که تنها از یک Process برای تمامی فعالیت های خود استفاده نماید.

(بیشتر…)

ادامه مطلب

رفع ایرادات و اشکالات وب سرور Apache – بخش سوم

Apache Web Server

برخی اوقات و در مواقع خاصی وب سرور Apache به اصطلاح Crash می کند و از کار می افتد. در این مواقع پیدا کردن مشکل اصلی گاهی کار سختی خواهد بود چراکه اغلب در Log فایل ها نیز چیزی در این مورد ثبت نشده است.
در این هنگام برای رفع این مشکل می توانید از ماژول mod_whatkilledus استفاده کنید.

(بیشتر…)

ادامه مطلب

رفع ایرادات و اشکالات وب سرور Apache – بخش دوم

Apache Web Server

یکی از مهمترین کارها پس از نصب وب سرور Apache بر روی سرور و راه اندازی چندین سایت روی آن، مشاهده Logهای ایجاد شده خطاها توسط این وب سرور است. به صورت پیش فرض این فایل ها به صورت متنی و با نام error_log در مسیر Apache/logs وجود دارند.

(بیشتر…)

ادامه مطلب

رفع ایرادات و اشکالات وب سرور Apache – بخش اول

Apache Web Server

یکی از دلایل مشکلاتی که در وب سرور Apache ممکن است رخ دهد، تنظیمات اشتباه آن در فایل httpd.conf است. در این حالت Apache شروع به کار نمی کند و پیدا کردن مشکل در آن کار سخت و وقت گیری است. در این هنگام می توانید با یک ابزار فایل httpd.conf را بررسی نمایید و اگر در آن اشکالی وجود داشت آن را بیابید.

(بیشتر…)

ادامه مطلب

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

zf2-structure

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

ادامه مطلب

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

events-small

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

ادامه مطلب

OPcache چیست؟

PHP Zend OPcache

همانگونه که می دانید PHP یک زبان مفسری است. به این معنی که در هر بار اجرای یک فایل PHP، آن فایل خوانده و سپس Parse می شود. آنگاه نتیجه Parse شده فایل PHP که به آن OPcode گفته می شود، آماده اجرا خواهد بود. این کار در هر بار اجرا اتفاق خواهد افتاد.
حال برای جلوگیری از تکرار این مراحل ابزارهایی برای Cache کردن OPcode ایجاد شده اند. یکی از این ابزارها OPcache است.

(بیشتر…)

ادامه مطلب

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

zf2-config-structure

در زند فریم ورک ۲ دو نوع تنظیمات کلی داریم.

  1. تنظیمات System
  2. تنظیمات Application

نوع اول تنظیماتی هستند که در فایل config/application.config.php وجود دارند و به صورت داینامیک قابل تغییر نیستند. نوع دوم تنظیماتی هستند که برای هر ماژول به صورت جداگانه در نظر گرفته شده اند بعلاوه تنظیماتی که در بخش config/autoload وجود دارد. در بخش مربوط به Event Manager گفتیم که برای شناسایی رخ دادن یک رویداد از Listener استفاده می نماییم. در زند فریم ورک ۲ Listener هایی با نام ConfigListener وجود دارند که هنگام لود ماژول ها تنظیمات ماژول ها (به صورت پیش فرض در پوشه ای با نام config درون هر ماژول) را دریافت و با هم ادغام میکنند. (بیشتر…)

ادامه مطلب