تا حالا به این فکر کردی که توی دنیای سرعتی و پرشتاب امروز، داشتن یه فریم ورک سریع و سبک چقدر میتونه مهم باشه؟ مخصوصاً وقتی قراره یه وب سایت یا اپلیکیشن تحت وب سنگین بسازی و میخوای هم کاربرهات تجربه عالی ای داشته باشن و هم خودت از پیچیدگیهای کدنویسی سردرد نگیری! خب، اینجا جاییه که Phalcon وارد میشه، یه فریم ورک بی نهایت سریع و قدرتمند برای PHP که قراره با سرعت موشک کارها رو پیش ببره. پس بیا با هم نگاهی به این فریم ورک فوق العاده بندازیم و ببینیم چرا اینقدر مورد توجه برنامه نویسها قرار گرفته!
Phalcon چیست؟
Phalcon یه فریم ورک متن باز (open-source) برای زبان برنامه نویسی PHP هست که یه تیم از برنامه نویسها به رهبری آندرس گوتیرز ساختنش. این فریم ورک بر اساس الگوی معروف MVC (یا همون Module View Controller) ساخته شده. حالا جالب اینجاست که Phalcon اولین فریم ورکیه که از ORM (یعنی مدل سازی دیتابیس) با زبان C استفاده کرده. این یعنی سرعتش نسبت به بقیه فریم ورکها خیلی بالاتره و کدنویسی باهاش هم ساده تره.
ساختار برنامه در Phalcon
یکی از ویژگیهای اصلی Phalcon اینه که یه فریم ورک loosely coupled یا همون "اتصال شل" هست. یعنی چی؟ یعنی اجباری به رعایت یه ساختار ثابت نداری و میتونی پروژت رو با ساختاری که مناسب اپلیکیشن خاص خودته، بسازی. با اینکه Phalcon از الگوی MVC (مدل-نما-کنترلر) پیروی میکنه، اما انعطاف پذیری بالایی داره و بهت اجازه میده که ساختار پروژه رو متناسب با نیازت تغییر بدی.
در حالت استاندارد، پروژههای Phalcon به این شکل ساخته میشن:
Application
این پوشه شامل فایلهای مهم مثل تنظیمات (config)، کنترلرها (controllers) و ویوها (views) هست. در واقع، اینجا همون قلب تپنده اپلیکیشنه که همه عملکردهای مهم رو تعریف میکنه و اسکریپتها و فایلهای ضروری برای اجرا روی سرور توش قرار داره.
Configuration
این بخش مربوط به تنظیمات برنامس. چهار تا فایل کلیدی اینجا وجود داره:
Config.php: این فایل یه رابط کاربری شیءگرا فراهم میکنه که بهت کمک میکنه تنظیمات برنامه رو به سادگی از داخل کدها بخونی و مدیریت کنی.
Loader.php: این فایل به طور خودکار همه کلاسهای پروژه رو لود میکنه. به دلیل اینکه این کامپوننت با زبان C نوشته شده، کارش با کمترین سربار (overhead) ممکن انجام میشه.
Router.php: این فایل وظیفه داره مسیرها رو به کنترلرها یا هندلرها متصل کنه. کنترلرها بر اساس این مپینگها درخواستها رو دریافت میکنن. در واقع، روتِر URI رو تجزیه میکنه تا بفهمه درخواست به کجا باید بره.
Services.php: این فایل مدیریت وابستگیها و مکان سرویسها رو بر عهده داره.
Controllers
اینجا همه متدها و عملکردهایی که درخواستهای ورودی رو مدیریت میکنن، تعریف شده. به طور پیش فرض، همه متدهایی که توی کنترلر تعریف میکنی به یه اکشن یا همون عملکرد خاص مپ میشن.
Views
این بخش، نمای ظاهری اپلیکیشنته. ویوها شامل فایلهای HTML هستن که کد PHP توشون قرار میگیره تا بتونن کارهای خاص رو انجام بدن.
Cache
این کلاس توی پوشه Phalcon قرار داره و دسترسی سریعتر به داده هایی که بیشتر استفاده میشن رو فراهم میکنه. این کلاس هم مثل Loader.php به زبان C نوشته شده و باعث افزایش کارایی و کاهش سربار میشه.
Public
این پوشه شامل همه فایلها و پوشه هایی هست که به اجرای محتوای اصلی اپلیکیشن کمک میکنن، مثل فایلهای CSS، JavaScript و تصاویر.
معماری MVC (مدل-نما-کنترلر) در Phalcon
Phalcon از الگوی معماری MVC استفاده میکنه، الگویی که برای توسعه ی فریم ورکهای وب خیلی پرکاربرده. این معماری به سه بخش اصلی تقسیم میشه: مدل ها، نماها و کنترلرها. این تقسیم بندی باعث میشه منطق تجاری (Business Logic)، دادهها و رابط کاربری از هم جدا بشن، که در نتیجه نگهداری و توسعه ی کدها رو راحتتر میکنه.
مدل ها: وظیفه مدلها اینه که دادههای برنامه رو مدیریت کنن و با دیتابیس در ارتباط باشن. بیشتر منطق تجاری برنامه توی مدلها قرار داره.
نماها: ویوها همون بخشی هستن که کاربر باهاشون در ارتباطه. اونها صفحات HTML به همراه کدهای PHP دارن که درخواستهای کاربر رو مدیریت میکنن و اطلاعات رو نمایش میدن.
کنترلرها: کنترلرها درخواستهای کاربر رو از ویوها دریافت میکنن، با مدلها ارتباط برقرار میکنن و نتیجه رو دوباره به ویوها برمی گردونن.
این ساختار به دلیل جداسازی وظایف، باعث سادهتر شدن نگهداری کدها میشه و توسعه دهندهها میتونن به راحتی هر بخش رو به طور مستقل تغییر بدن.
ویژگیهای Phalcon
Phalcon یه سری ویژگیهای خیلی جذاب داره که باعث شده خیلی از برنامه نویسها عاشقش بشن. بریم ببینیم این ویژگیها چیا هستن:
سریعترین فریم ورک PHP: یکی از مهمترین ویژگیهای Phalcon اینه که سرعتش فوق العاده بالاست.
فریم ورک متن باز و کامل: Phalcon یه فریم ورک کامل و متن بازه که همه چیز داره.
قابلیت ساخت فریم ورکهای مستقل: میتونی باهاش فریم ورکهای مستقل و اختصاصی خودت رو بسازی.
نیاز به کدنویسی کمتر: برای انجام وظایف مختلف نیاز به نوشتن کد کمتری داری.
ارائه امکاناتی مثل ORM، موتور قالب سازی، مسیریابی و کش: Phalcon از ORM برای ارتباط با دیتابیس، موتور قالب سازی برای ساخت صفحات، مسیریابی برای هدایت درخواستها و سیستم کش برای ذخیره سازی اطلاعات موقت پشتیبانی میکنه.
انعطاف پذیر و با اتصال شل (loosely coupled): این فریم ورک خیلی انعطاف پذیره و بهت اجازه میده ساختار پروژه رو بر اساس نیاز برنامت تغییر بدی.
مقایسه Phalcon با سایر فریم ورک ها
برای اینکه بدونیم Phalcon در مقایسه با بقیه فریم ورکها چطوره، یه جدول مقایسه بین اون و چند تا از معروفترین فریم ورکهای PHP درست کردیم:
ویژگی
Yii2
ZEND1
CodeIgniter2
CakePHP
Phalcon
بهترین برای
پروژههای کوچک، متوسط، بزرگ
پروژههای متوسط و بزرگ
پروژههای کوچک، متوسط، بزرگ
پروژههای کوچک و متوسط
پروژههای کوچک، متوسط، بزرگ
نسخه PHP
PHP 5.4
PHP 5.2
PHP 5.1
PHP 5.2
PHP 5.4
لایسنس
New BSD
New BSD
MIT
MIT
New BSD, AGPL
مهارتهای موردنیاز
PHP5، OOP
PHP5، OOP و آگاهی از الگوهای طراحی
PHP، OOP پایه ای
PHP، OOP و توانایی کار با فریم ورک
PHP
سرعت
سریع
سبک و قابل سفارشی سازی
چابک و کم حجم
کند
فوق العاده سریع
عملکرد
123.5 درخواست در ثانیه
103.2 درخواست در ثانیه
187.78 درخواست در ثانیه
54.97 درخواست در ثانیه
822.96 درخواست در ثانیه
پشتیبانی از حالت چند کاربره
شرطی
بله
شرطی
بله
بله
دیتابیسهای پشتیبانی شده
MySQL، SQLite، Oracle
PostgreSQL، MongoDB
Microsoft Bl، Oracle
MySQL، SQLite، Microsoft Bl
MySQL، SQLite، Oracle
الگوی طراحی
DAO، MVC، HMVC
MVC، Dependency Injection
Active Record، MVC، HMVC
Active Record، MVC
Dependency Injection، MVC، HMVC
تولید کد
Yii CLI، Gii
CLI
Console
CLI
CRUD، CLI
کتابخانه تست
PHP Unit، Selenium
PHP Unit
PHP Unit
PHP Unit
PHP Unit
این جدول مقایسه بهت یه دید کلی میده که Phalcon توی چه بخش هایی برتری داره و چقدر سریع و کارآمده.
نصب Phalcon
برای نصب Phalcon اول باید WAMP، MAMP، LAMP یا XAMP رو نصب کنی، بسته به سیستم عاملت. اینجا ما نصب رو بر اساس WAMP (ویندوز، Apache، MySQL، PHP) توضیح میدیم.
فایل DLL مربوط به Phalcon رو برای ویندوز دانلود کن.
مرحله 2: حالا پوشه ای که دانلود کردی رو از حالت فشرده خارج کن و فایل هاش رو توی پوشه ی C:\wamp\bin\php\php5.5.12\ext بریز. این همون پوشه ایه که افزونههای PHP توش قرار میگیره.
مرحله 3: حالا باید فایل php.ini رو که توی مسیر C:\wamp\bin\php\php5.5.12\php.ini هست، باز کنی (با برنامه ای مثل نوت پد یا یه ویرایشگر دیگه).
مرحله 4: در آخر، WAMP سرور رو ری استارت کن تا تغییرات اعمال بشه. بعد از ری استارت، میتونی ببینی که افزونه Phalcon اضافه شده.
نصب ابزارهای توسعه (Developer tools)
مرحله 1: ابزارهای توسعه ی Phalcon رو از https://github.com/phalcon/phalcon-devtools دانلود کن و بعد توی درایو C اکسترکتش کن. مسیرش به این شکل میشه: C:\phalcon-devtools-master.
اطلاعات نسخه در WAMP: برای اطمینان از نسخه، WAMP سرور رو اجرا کن و روی phpinfo() کلیک کن تا اطلاعات نسخه رو ببینی.
مرحله 2: حالا باید متغیرهای محیطی (environment variables) رو برای PHP و ابزارهای توسعه ی Phalcon تنظیم کنی.
مرحله 3: پنجره CMD رو باز کن و دستور phalcon رو تایپ کن تا مطمئن بشی که نصب شده.
مرحله 4: برای ایجاد پروژه ی نمونه، این دستور رو اجرا کن: phalcon create-project <نام-پروژه>
ویرایش: ویرایش فایل تنظیمات سرور
برای تنظیم سرور، اول باید فایل پیکربندی Apache رو توی یه ویرایشگر متن باز کنی. این فایل معمولاً توی مسیر {wamp_dir}/apache/conf/httpd.conf قرار داره.
حالا باید دو تا تغییر انجام بدی:
اول دنبال این خط بگرد: #LoadModule rewrite_module modules/mod_rewrite.so بعدش اون علامت # رو بردار تا این ماژول فعال بشه.
بعدش دنبال این عبارت بگرد: AllowOverride None و اون رو به AllowOverride All تغییر بده.
وقتی این تغییرات رو انجام دادی، فایل رو ذخیره کن و سرور WAMP رو ری استارت کن تا تنظیمات جدید اعمال بشه.
اجرای پروژه
برای اینکه مطمئن بشی پروژه به درستی نصب شده، باید فایل پروژت رو که توی مسیر file:///C:/wamp/www/demo/index.html هست اجرا کنی و توی مرورگر localhost رو باز کنی. اگه صفحه به درستی لود شد، یعنی همه چیز درست پیش رفته!
سوالات متداول
1. Phalcon دقیقاً چیه؟
Phalcon یه فریم ورک متن باز برای PHP هست که به خاطر سرعت بالا و بهینه سازیهای پیچیدش خیلی معروفه. برخلاف بقیه فریم ورک ها، Phalcon به زبان C نوشته شده و به عنوان یه افزونه به PHP اضافه میشه.
2. Phalcon چه تفاوتی با بقیه فریم ورکها داره؟
Phalcon سریعترین فریم ورک PHP به حساب میاد چون مستقیماً به زبان C نوشته شده و بهینه سازی شدس. علاوه بر این، نیاز به کدنویسی کمتر داره و انعطاف پذیری بالایی برای ساختار پروژهها ارائه میده.
3. برای استفاده از Phalcon باید C بلد باشم؟
نه، نیازی نیست! با اینکه Phalcon به زبان C نوشته شده، تو همچنان ازش مثل یه فریم ورک PHP استفاده میکنی. یعنی میتونی کدهای PHP معمولی رو بنویسی.
4. Phalcon رایگانه؟
بله، Phalcon کاملاً متن باز و رایگانه. میتونی ازش توی پروژه هات استفاده کنی بدون اینکه نگرانی از بابت هزینهها داشته باشی.
5. Phalcon روی چه سیستم عامل هایی کار میکنه؟
Phalcon روی سیستم عاملهای مختلف مثل ویندوز، لینوکس و مک نصب و اجرا میشه. فقط باید بستههای WAMP، LAMP یا MAMP رو متناسب با سیستمت نصب کنی.
6. برای چه نوع پروژه هایی مناسبه؟
Phalcon برای هر نوع پروژه ای از کوچک گرفته تا بزرگ مناسبه. اگه دنبال سرعت و عملکرد بالا هستی، Phalcon یکی از بهترین انتخاب هاست.
جمع بندی
Phalcon یه فریم ورک سبک و سریع برای PHP هست که به خاطر طراحی منحصربه فردش میتونه پروژههای وب سایت یا اپلیکیشن تو رو به سطح جدیدی از کارایی و سرعت برسونه. با وجود اینکه به زبان C نوشته شده، استفاده ازش نیاز به دانش C نداره و مثل بقیه فریم ورکهای PHP میتونی به سادگی ازش استفاده کنی. از ویژگیهای خاص این فریم ورک میشه به سرعت بالا، نیاز به کدنویسی کمتر، انعطاف پذیری در ساختار پروژه و ابزارهای توسعه ی قدرتمندش اشاره کرد. پس اگه به دنبال یه فریم ورک قدرتمند، سریع و بهینه برای پروژه هات هستی، Phalcon میتونه انتخاب ایده آلی باشه!