آشنایی با NameSpace در Laravel - لاراول
فضای نام (NameSpace) در زبان های مختلف برنامه نویسی استفاده می شود و برای ایجاد یک گروه جداگانه از متغیرها ، توابع و کلاس ها کاربرد دارد . همانطور که می دانید یک پروژه همگام با پیشرفت زمان توسعه می یابد . ممکن است در هنگام توسعه پروژه کلاس ها، متدها و یا ثابت های داخلی هم نامی ایجاد شود ، که باعث ایجاد مشکلاتی گردد. چون فضای نامی که در آن کد نویسی می کنیم یک فضای global و سراسری هست، و منجر به تداخل یا conflict توابع با یکدیگر می شود.
به زبان ساده تر همان طور که دو فایل با نام یکسان را نمی توان در یک دایرکتوری ذخیره کرد و باید هر کدام را بطور جدا در دایرکتوری های جدا ذخیره نمود، فضای نام هم همان مفهوم ساختار دایرکتوری ها در سیستم عامل را دارد. و نمی توان دو تابع یا ثابت با نام یکسان را در یک فضای نام یکسان داشت . در اینجاست که فضاهای نام نقش مهمی در اجتناب از چنین تداخل هایی ایفا می کنند.
تعریف فضای نام
فضاهای نام را می توان به عنوان یک کلاس از عناصر تعریف کرد که در آن هر عنصر دارای یک نام منحصر بفرد در آن کلاس است . و می توانند با عناصر در کلاس های دیگر به اشتراک گذاشته شوند.
شما میتوانید توسط کد زیر یک namespace تعریف نمایید :
use <namespace-name>;
کلمه کلیدی use به توسعه دهندگان این امکان را می دهد تا به جای استفاده از کلمه namespace از use استفاده کنند که کوتاهتر نیز می باشد.
فضای نام پیش فرض استفاده شده در لاراول ، app می باشد. البته کاربر می تواند namespace پیشفرض لاراول را تغییر دهد.شما می توانید بوسیله دستورات artisan فضای نام را تغییر دهید :
php artisan app:name Tutorialspoint
بعد از اجرای دستور بالا ، پیامی مبنی بر موفقت آمیز بودن دستور فوق برای شما نمایش داده می شود.
فضای نامی که ایجاد شده است می تواند در controllerها و classهای مختلف استفاده شود.
Namespace تغییر یافته را بطور مثال در مسیر های app/console/kernel.php و app/Http/controller.php مشاهده نمایید.
<?php
namespace Tutorialspoint\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
//
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule){
// $schedule->command('inspire')
// ->hourly();
}
/**
* Register the Closure based commands for the application.
*
* @return void
*/
protected function commands(){
require base_path('routes/console.php');
}
}
<?php
namespace Tutorialspoint\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
از این به بعد کلاس های کنترلر دارای یک namespace به نام namespace Tutorialspoint\Http\Controllers خواهند بود. که باید در ابتدای کلاس هر controller ذکر شود.
درواقع Namespace جایگاه و موقعیت یک کلاس را بیان می کند. در صورتی که کلاس های controller تان را داخل دایرکتوری دیگری قرار دهید و آن دایرکتوری، داخل دایرکتوری controllers باشد باید نام آن دایرکتوری را به فضای نام همه آنها اضافه کنید.
قابل ذکر هست که درصورتی که بخواهید کلاس دیگری در کلاس های controller استفاده کنید باید از دستور use برای ایمپورت کردن آن استفاده کنید تا در هنگام استفاده در کلاس ، نیاز به نوشتن namespace و بعد نام کلاس نباشد.
این فصل در یک نگاه:
آشنایی با امکانات جدید لاراول ۷…
برخی از سرفصل های این پکیج آموزشی : لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…این فصل در یک نگاه:
بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…
وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…این فصل در یک نگاه:
مباحث تکمیلی فریم ورک لاراول…
فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…این فصل در یک نگاه:
مباحث مقدماتی فریم ورک react.js…
توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …