منبع اصلی نوشتار زیر در این لینک قرار دارد

اضافه کردن کلاس‌ها و Helperهای شخصی به Laravel

سلام

یکی از ویژگی‌های فریمورک‌ها، قابلیت اضافه‌ کردن کلاس‌ها و کتابخانه‌هاییست که توسط خودتون یا فرد دیگری نوشته شده. لاراول تو این زمینه دستتونو کاملا باز گذاشته.

یکی از اشکال این کتابخونه‌ها یا کلاس‌ها پکیج‌ها هستند که در آینده در موردشون بیشتر صحبت می‌کنیم. ولی امروز می خواهیم در مورد اضافه کردن کلاس‌های دم دستی و یا Helperها به Laravel صحبت کنیم.

فرض کنید یه سری تابع و متد داریم که برای راحت‌تر شدن کارمون و تمیزکاری اونارو یه جا بنویسم و بعد ازشون استفاده کنیم. راحت‌ترین حالت ممکن اینه که بریناون تابع‌ها رو به فایل route.php, filter.php, start.php و یا هر فایل دیگه‌ای که موقع اجرای لاراول مورد استفاده هستند بنویسم و و در جاهای دیگه ازشون استفاده کنیم. ولی این کار کدمونو کثیف و نامرتب می‌کنه. 

برای افزودن یک کلاس Helper به این ترتیب عمل می‌کنیم:

ابتدا یک دایرکتوری به دایرکتوری app اضافه می‌کنیم مثلن به اسم helpers:

mkdir laravel/app/helpers

بعد از اون یه فایل php داخل دایرکتوری مذکور ایجاد کرده و هر اسمی خواستیم روش میذاریم، فقط یادتون باشه بعدن با این اسم کار داریم. مثلن یه فایل میسازیم به اسم Helper.php

بعد از اضافه کردن فایل داخل اون شروع می‌کنیم به نوشتن متدهامون. یادتون باشه اون فایل Helper.php داخلش یه کلاس به همین نام باید باشه اونم از نوع static، به این صورت:

<?php
class Helper {
public static helloWorld() {
return "hello world";
}
}

هر چند‌تا متد خاصتین میتونین توش ایجاد کنید ولی بازم یادتون باشه باید همشون از نوع static باشن.

حالا تو هر جای پروژه‌تون میتونید به این شکل از کلاس Helperتون استفاده کنید، مثلن:

echo Helper::helloWorld();

ولی موقع اجرا میبینید که بهتون اخطار میده که همچین کلاسی وجود نداره. خب درسته چون ما این کلاسمونو داخل پروژه load نکردیم. برای این کار فایل composer.json اصلی لاراولو باز می‌کنیم و آدرس فولدر Helperمون رو در قسمت autoload -> classmap اضافه می‌کنیم. مثل این:

	"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
            "app/helpers"
]

بعد از اضافه کردن و ذخیره کرده فایل composer.json، ترمینالو باز کرده( جایی که فایل composer.json وجود داره) و عبارت زیر را وارد می‌کنیم:

composer dump-autload

به همین راحتی الان می‌تونید از Helperتون تو پروژه‌تون به راحتی استفاده کنید و یادتون باشه از لاراول لذت ببرین.

ادامه مطلب

منبع اصلی نوشتار زیر در این لینک قرار دارد

افزودن قابلیت Auto Complete به IDEها برای توسعه لاراول

سلام

یکی از قابلیت‌هایی که برنامه‌نویسان از اون در هنگام کدنویسی خیلی بهره‌ می‌برند، قابلیت تکمیل خودکار عباراته. تمام IDE‌ها این قابلیت رو دارن ولی بعضی‌هاشون خیلی هوشمندن مثل Visual Studio و Jetbrain PhpStorm و بعضی‌هاشون امکانات و هوشمندی کمتری دارند، مثل Sublime ُText.

هوشمندی ویرایشگر‌های کد برای Completion شامل امکانات موجود در زبان، متغیر‌ها، توابع و کلاس‌ها هست ولی بعضی موقع بعضی چیزارو تشخیص نمی‌دن. مثل کلاس‌ها یا فایل‌هایی که در هنگام اجرا قراره کنار هم قرار بگیرند و یا ارث‌بری‌های کلاس‌های مختلف.

یکی از فریمورک‌هایی که این روزا خیلی سر و صدا کرده لاراوله و بالطبع برنامه‌نویسان دوست دارن تو محیطی کد بزنن که بیشترین امکاناتو در اختیارشون قرار بده. خوب به صورت پیش‌فرض IDEهایی مثل PhpStorm, Eclipse, Aptana, Netbaens تا حدودی هوشمندی دارن و کم و بیش کلاس‌ها و فایل‌های یک پروژه رو تشخیص می‌دن ولی برای بهره‌برداری هرچه بیشتر باید یه کارایی بکنید تا اسکریپتتون به صورت کامل توسط IDE پشتیبانی بشه.

خوشبختانه برای فریمورک لاراول یک پکیج وجود داره که با نصبش به راحتی قدرت کامل فریمورک رو روی IDE بهتون میده.  Laravel IDE Helper، یه پکیجیه که مثل بقیه پکیج‌های لاراول میتونین اونو با composer نصب کنین و با نوشتن یکی-دو خط کد و تنظیمات از این مهم بی ‌نصیب نمونین.

برای شروع ابتدا فایل composer.json اصلی پروژه‌تون رو باز کنید و در قسمت require این خط کد رو که نام پکیج مربوطه‌س وارد کنید:

"barryvdh/laravel-ide-helper": "1.*

بعد با استفاده از ترمینال(command-line) دستور زیر را وارد کنید (در دایرکتوری اصلی پروژه) :

 composer update

بعد از اون وارد فایل laravel/app/config/app.php بشین و عبارت زیر را به آرایه providers اضافه کنید:

'BarryvdhLaravelIdeHelperIdeHelperServiceProvider',

بعد از این کار دوباره وارد ترمینال شده و عبارت زیر را وارد کنید  (در دایرکتوری اصلی پروژه) :

php artisan ide-helper:generate

الان دیگه محیط توسعه نرم‌افزارتون یا همون IDE به راحتی تمام کلاس‌ها و توابع و اشیا رو شناسایی می‌کنه و می‌تونین از کد زدن لذت ببرین.

برای اطلاعات بیشتر و تنظیمات دیگه به این آدرس برید.

ادامه مطلب