از آنجایی که خیلی از دوستان در رابطه با انتخاب یک IDE مناسب برای کار با کیک با مشکل مواجه بودند. این پست نوشته شد، امیدوارم مفید واقع شود. در این پست و پست آتی تنظیمات ادیتور قدرتمند Eclipse برای کار با فریمورک CakePHP به ترتیب زیر آورده شده است:
-
+ بخش اول:
1- معرفی اجمالی Eclipse و ایجاد workspace و project
2- پیوند هسته کیک به پروژه جهت استفاده از قابلیتهای توکار Eclipse
3- پیکربندی برای شناسایی فایلهای thtml یا ctp
4- پیکربندی برای طبخ کیک بطور مستقیم با کنسول CakePHP+ بخش دوم:
5- دسترسی به پایگاه داده MySQL به کمک پلاگاین QuantumDB
6- افزودن پشتیبانی از Subversion به کمک پلاگاین Subclipseآنچه بدین منظور نیاز دارید:
+ نسخهای از Eclipse که شامل ابزارهای توسعهی پیاچپی است (3.3.2)
+ نسخهای از XAMPP که بطور پیشفرض در C:xampp نصب شده است
+ نسخهای از CakePHP که بطور پیشفرض در C:xampphtdocscake قرار دارد
+ سیستم عامل ویندوز ایکسپی
چرا از Eclipse استفاده میکنم؟
اول اینکه کد باز است و تعداد زیادی پلاگاین برای آن نوشته شده است که همهی نیازهای یک توسعه دهندهی وب را پوشش میدهد بطوریکه با اطمینان می توان گفت این نرمافزار به تنهایی یک توسعه دهنده را راضی خواهد کرد.
دوم اینکه بزرگ و قدتمند است اما در عین حال ساده برای بکارگیری. Eclipse یک IDE خاص نیست بلکه برای طیف وسیعی از زبانهای برنامهنویسی منتشر شده است. حتی خیلی از ادیتورهایی که جدیدا عرضه میشوند بر پایهی Eclipse بنا شدهاند. از آن جمله میتوان نرمافزار Carbide.ui Theme Edition شرکت نوکیا که برای طراحی تمهای گوشیهای موبایل ساخته شده است را نام برد یا جای دوری نرویم همین Aptana که برای کار با فریمورکهای جاوااسکریپت پیشنهاد میشود و …
نصب Eclipse برای PHP
گفتم که Eclipse یک IDE کلی هست. در پروژهایی تحت نام PHP Development Tools معروف به PDT (ابزارهای توسعه پیاچپی) آنچه برای توسعهی پیاچپی مورد نیاز است به این IDE افزوده شده است.
براساس وب سایت PDT، پکیج All-in-One شامل مجموعه کاملی است برای آنکه بتوان بیدرنگ از PDT استفاده کرد. آخرین نسخه پایدار برای ویندوز را می توانید از اینجا دریافت کنید.
خوشبختانه نصب eclipse بسیار ساده است چرا که هیچ مرحلهای برای نصب ندارد. کافیست آن را از حالت فشرده خارج کنید و در جایی مناسب کپی کنید سپس برنامه را اجرا کنید. برای اولین اجرا احتمالا سوالی برایتان پیش خواهد آمدکه …
workspace چیست؟
معمولا افراد از تعریف workspace تعابیر متفاوتی دارند. من آن را فضای کاری ترجمه میکنم. workspace در حقیقت مکانی است که پروژههایتان را در آنجا نگه میدارید (در مثال ما خود فریمورک CakePHP بعنوان workspace شناخته میشود) ساده بگویم یک دایرکتوری روی هارد. برای اولین بار اجرای eclipse باید workspace را تعریف کنید.
تعریف کردن workspace
قاعده ثابتی بدین منظور وجود ندارد، اما من توصیه میکنم آن را برابر C:xampphtdocs مقداردهی کنید. همچنین از طریق منو File و Switch Workspace می توانید workspace متفاوت دیگری مشخص کنید.
پروژه (Project) چیست؟
همانگونه که شما میدانید پروژهی کاری، برنامهای که در حال توسعه دادن است تعریف میشود. در مورد CakePHP پروژهایی که در حال توسعهدادن است یک کپی از فولدر app کیک است. بنابراین نیاز داریم تا یک پروژه تعریف کنیم.
تعریف کردن پروژه
از منو File گزینه New و سپس PHP Project را انتخاب کنید. در صورتی که این گزینه وجود ندارد در قسمت Other و زیر شاخه PHP میتوانید PHP Project را بیابید. تنظیمات بعدی را مطابق شکل انجام دهید (برای دیدن تصاویر در سایز واقعی روی آنها کلیک کنید):
در eclipse هنگام تعریف پروژه چنانچه دایرکتوری پروژه محتوی فایل باشد پنجرهایی به شکل زیر برای تایید مسیر پروژه نمایان خواهد شد:
این پنجره هشدار میدهد که محلی که برای تعیین پروژه انتخاب کردهاید حاوی فایل است و پاک کردن پروژه در محیط eclipse فایلها را پاک خواهد نمود. با انتخاب گزینه پیشفرض یعنی گزینه دوم، برنامه در مسیر داده شده یک فولدر جدید (هم نام پروژه) میسازد و عملیات توسعه در آن انجام خواهد شد. اما از آنجایی که برای توسعه کیک میبایستی عملیات توسعه بر روی فایلهایی که از فولدر app کپی گرفتهایم انجام شود گزینه اول را انتخاب میکنیم. دقت کنید که در این حالت پاک کردن پروژه از داخل محیط IDE تمامی فایلهای آن دایرکتوری را پاک خواهد کرد. هم اکنون میبایستی در ستون سمت چپ، پروژهتان را مشاهده کنید. میتوانید هر فولدر را بسهولت باز و ساختار فایلهای آن را مشاهده کنید.
پیوند هسته کیک به پروژه
حال نوبت آن رسیده است که این پروژه را به هسته کیک پیوند دهیم. به این معنی که بتوانید از کلاسها و ثابتهای کیک (classes & constants) با قابلیت تکمیل خودکار (auto-complete) استفاده کنید. علاوه بر این میتوانید به فایلهای هسته کیک دسترسی داشته باشید. یک راهنمای دم دست!
ابتدا هسته کیک را بعنوان یک پروژه تعریف میکنیم. دقیقا شبیه قبل از منو File گزینه New و سپس PHP Project را انتخاب کنید و سپس مطابق شکل زیر عمل کنید:
مجددا در پنجره تاییدیه مسیر پروژه، گزینه اول را انتخاب کنید. حال میبایستی بین این دو پروژه پیوند برقرار کنیم بدین منظور در نمای PHP explorer بر روی پروژه اصلی (نه پروژهایی که بعنوان هسته تعریف شد) راست کلیک کرده و گزینه Configure Include Path را انتخاب میکنیم. در تب projects با انتخاب add پروژهی Cake را تیک میزنیم (دقت کنید چنانچه پروژه Cake بسته باشد در این قسمت موجود نخواهد بود)
حالا میتوانید نتیجه عملیات رو آزمایش کنید. برای برنامهایی که در نظر دارید یک کنترلر باز یا ایجاد کنید و به نمای Outline بروید. همانطور که مشاهده می کنید کلاسها، توابع و متغیرها را تشخیص داده است. حتی وراثت کلاس را به خوبی مشخص میکند بطوری که می توانید به سادگی تمام زیرشاخهها را وارسی کنید. خیلی جالبه نه! و جالب تر اینکه در ویرایشگر PHP قابلیت تکمیل خودکار خیلی هوشمندانه عمل میکنه (میتوانید با میانبر Ctrl+Space آزمایش کنید)
پیکربندی برای شناسایی فایلهای thtml یا ctp
بسته به اینکه از چه نسخهایی از کیک استفاده می کنید با فایلهایی با فرمت thtml (برای نسخه 1.1 کیک) و یا ctp (برای نسخه 1.2 کیک) که برای ایجاد نما (view) استفاده میشوند، سر و کار خواهید داشت. این فایلها در حقیقت محتوای PHP دارند. برای اینکه بتوان از قابلیت هایلایت و تکمیل کد استفاده کنیم بهتر است به روش زیر این فایلها را برای Eclipse بعنوان فایل PHP تعریف کنیم.
بدین منظور از منو Window گزینه Preferences و سپس General را انتخاب کنید. در قسمت Content types شاخهی text را باز کنید و PHP content type را انتخاب کنید. حال در قسمت file associations بر روی add کلیک کنید و *.ctp و *.thtml را در مراحلی جداگانه اضافه کنید.
حالا دوباره به preferences برگردید و اینبار Editors و از آنجا File Associations را انتخاب کنید. با انتخاب add مجددا فرمتهای فوق را اضافه کنید. سپس با انتخاب این فرمتها بطور جداگانه در قسمت Associated Editors با انتخاب add آنها را به PHP Editor بطور پیشفرض اضافه کنید. حال می توانید یک فایل با فرمت ctp در کیک 1.2 باز کنید و هایلایت کدها را ببینید.
پیکربندی برای طبخ کیک بطور مستقیم
این یک مجتمعسازی ماهرانه است و یکی از جالبترین بخشهایی است که میبایستی در تنظیمات eclipse لحاظ کرد. بسته به اینکه از چه نسخهایی از کیک استفاده می کنید، تنظیمات متفاوت خواهد بود:
برای نسخه 1.1
از منو Run گزینه External Tools و از آنجا Open External Tools Dialogue را انتخاب کنید. بر روی Program از سمت چپ، راست کلیک کنید و New را انتخاب کنید. تنظیمات تب main را مطابق شکل زیر لحاظ کنید:
Apply و سپس Close کنید. حال از منوی run گزینه External tools و از آنجا Organise favourites را انتخاب و با کلیک روی add و تیک دار کردن Bake_1_1 آن را به لیست اجرا اضافه کنید.
برای نسخه 1.2
ابتدا میبایستی کنسول CakePHP را در ویندوز پیکربندی کنید. هر چند یک فیلم آموزشی در این مورد در اینجا موجود است اما مراحل را توضیح میدهم:
به Control Panel از آنجا System و تب Advanced بروید. Environment Variables را انتخاب و از قسمت System variables متغیر سیستمی Path را باز کنید و در فیلد Variable Value در ادامه محتویات مقادیر زیر را قرار دهید (دقت کنید قبل از وارد کردن این مقادیر، در انتهای مقدار موجود علامت سیمیکولون یعنی ; را بگذارید):
C:xamppphp;C:xampphtdocscakecakeconsole;
پنجرهها را بترتیب ok کنید. در قسمت run منوی استارت cmd را تایپ کنید تا محیط Command Prompt باز شود در خط فرمان cake تایپ کنید چنانچه پیام خوشآمدگویی کنسول کیک را مشاهده کردید پیکربندی کنسول روی ویندوز درست انجام شده است. می توانید با استفاده از دستور cd به شاخه نصب کیک بروید تا مسیرهای صحیح Current Patch را ببینید (هر چند نیازی نیست)
به Eclipse برمیگردیم. برای اینکه تنظیمات پیکربندی کنسول در محیط IDE هم لحاظ شود Eclipse را ببندید و مجدد اجرا کنید. از منو Run گزینه External Tools و از آنجا Open External Tools Dialogue را انتخاب کنید. بر روی Program از سمت چپ، راست کلیک کنید و New را انتخاب کنید. تنظیمات تب main را مطابق شکل زیر لحاظ کنید:
Apply و سپس Close کنید. حال از منوی run گزینه External tools و از آنجا Organise favourites را انتخاب و با کلیک روی add و تیک دار کردن Bake_1_2 آن را به لیست اجرا اضافه کنید.
چگونه کیک را طبخ کنیم؟
برای Bake کردن (که من طبخ کردن ترجمهاش کردم) run external tool را انتخاب و برحسب نسخه کیک bake_1_1 یا bake_1_2 را اجرا کنید. از طریق منوی run و گزینه External tools نیز قابل دسترسی هستند.
اگر از کیک 1.2 استفاده میکنید همانطور که در تنظیمات فوق مشاهده کردید برای آدرس دایرکتوری کاری مقدار ${project_loc} را جایگزین کردیم که بطور خودکار به پروژهایی اشاره دارد که انتخاب شده است. یعنی در هنگام Bake کردن، پروژهای که انتخاب شده باشد را Bake خواهد کرد نه سایر پروژهها را. بنابراین باید دقت کنید که قبل از شروع عملیات طبخ پروژه را انتخاب کرده باشید (پروژه کاری نه پروژهایی که بعنوان هسته کیک تعریف شد)
حال با کنسول CakePHP بسادگی میتوانید پروژههای جدید ایجاد کنید، مدل، کنترلر و نما بسازید و دیتابیس را پیکربندی کنید. امیدوارم طباخی یاد داشته باشید. چون توضیح این قسمت خارج از حوصله من است اگر مشکلی داشتید مطرح کنید.
در ادامه این مطلب در پستهای آینده، دسترسی به پایگاه داده MySQL به کمک پلاگاین QuantumDB و همچنین افزودن پشتیبانی از Subversion به کمک پلاگاین Subclipse توضیح داده خواهد شد.
مهدی مشتافی
سلام
مثل همیشه منحصر به فرد و کامل
تو این مدتی که با Cake آشنا شدم. مشکل بزرگی با auto-complete داشتم.
من از سیستم عامل Open SUSE و IDE komodo edit استفاده می کردم. چندباری قصد کوچ به Eclips رو داشتم که خدا نخواست و البته با این توضیحات شما تصمیمم قطعی شد.
یک سوال دارم!
چطور می تونم هیدر و فوتر defult کیک رو تغییر بدم؟
این نما در کجا ذخیره شده؟
ممنون
مشتاقانه منتظر پست بعدی هستم.
November 27, 2008 at 7:17 pm
مرتضی الوانی
سلام مهدی مشتاقی عزیز
اول اینکه خوشحالم که این راهنما کمی از مشکلات رو حل کرده و دوم، خوشا به سعادت توسعهدهندگانی چون شما که از لینوکس استفاده میکنند. اما در مورد مشکلتان با تغییر هدر و فوتر، بگذارید کمی بیشتر توضیح دهم. در پستهایی که در این بلاگ در مورد کیک نوشتم هنوز راجع به Layoutها صحبتی نکردم. جواب مشکلتان با نحوه استفاده از Layoutها حل خواهد شد.
Layoutها (طرحها) در حقیقت یه نما رو احاطه می کنند. هر چیزی که شما قصد دارید در تمام نماها ببینید میبایستی در Layout قرار بگیره. این فایلها در مسیر app/views/layouts قرار میگیرند. طرح پیشفرض کیک میتونه با ایجاد یک طرح پیشفرض جدید تغییر کنه به این صورت که یه فایل بنام default.ctp در مسیر طرحها قرار بدین. وقتی یه طرح پیشفرض ایجاد شد، در هنگام رندر شدن صفحه کنترلر از درون این طرح پیشفرض، نما رو رندر می کنه.
وقتی طرح رو ایجاد کردید، باید به کیک بگید که هر کد رو در کجا نمایش بده. (برای تست فایل خالی default.ctp رو در مسیر layouts بگذارید و پروژه رو ببینید، قطعا هیچ کاراکتری در صفحه رندر شده وجود نخواهد داشت) تکه کد زیر در داخل این فایل میتونه یه صورت کلی از طرح باشه:
حالا میتونید هدر و فوتر و سایر بخشها رو هر طور که بخواهید تعریف کنید. فقط یه توضیح کوچک اینکه $scripts_for_layout برای الحاق کردن فایلهای javascript و CSS بکار میره. فکر کنم توضیح مابقی متغیرها در عمل کاملا روشن باشه. برای اطلاعات بیشتر در مورد کاربرد Layoutها اینجا رو ببینید.
موفق باشید.
November 28, 2008 at 1:23 am
پسر مریخی
خیلی خوشحالم که دوباره داری مینویسی. امیدوارم «کارا همینجوری منظم پیش بره». :)
November 29, 2008 at 7:18 pm
مرتضی
مرتضی جان دستت درد نکنه ولی یه مشکل دارم وقتی توی eclipse کیک رو به عنوان پروژه تعریف می کنم کلی از این خطاها میگیره:
مثلا
No start tag (). Cake/cake/tests/lib footer.php line 47 2069
باید اینا رو درست کنم یا اینکه اصلا بهشون احتیاجی ندارم و مهم نیست.
December 12, 2008 at 5:39 pm
مرتضی الوانی
این خطاها مربوط به این میشه که معتبرسازی (Validation) توکار eclipse فعاله. میتونید از منو Project و انتخاب Properties با انتخاب Validation قواعد معتبرسازی رو برای هر پروژه غیر فعال کنید.
به هیچ وجه احتیاجی نیست که فایلهای هسته کیک ویرایش بشن.
December 12, 2008 at 9:09 pm
مرتضی
ازت ممنونم.
December 13, 2008 at 9:46 am
مرتضی
الان به من syntax می ده :
Severity and Description Path Resource Location Creation Time Id
Syntax Error Cake/cake/tests/lib cake_reporter.php line 98 1229171998109 1814
وقتی cake رو به پروژه پیوند می زنم فقط app و cake تو قسمت includ paths میاد!
December 13, 2008 at 10:42 am
Secret
نظری هم در یکی دیگه از پستها نوشتیم ، از وب شما خوشمان آمده است … شما هم از وب ما خوشتان خواهد امد! میگم ممکنه توی این ترنت شلوغ آدرستو گم کنم …آیدیمو ادد کن بعدا میخوام سایتمو بهت نشون بدم .. کامیاب باشی
December 23, 2008 at 10:29 pm
hadis
eclipse
October 28, 2009 at 10:21 am