پکیج چیست؟
به عنوان یک توسعهدهنده php، باید با نحوه استفاده از فریمورکها آشنا باشید. فریمورکها با ساده کردن روشهای متداول مورد استفاده در توسعه پروژههای اصلی وب، مانند پکیجها، ماژولها، پلاگینها و حتی کامپوننتها، تلاش میکنند تا فرآیند توسعه را آسانتر کنند.
فهرست مطالب
پکیج چیست؟
پیکجهای لاراول
فرآیند توسعه پکیجهای لاراول
بهترین پکیجهای لاراول
- Spatie
- Entrust
- Laravel Debugbar
- Laravel User Verification
- Socialite
- Laravel Mix
- Eloquent-Sluggable
- Migration Generator
- Laravel Backup
- No Captcha
- Laravel GraphQL
جنریتور ادمین پنل لاراول
پکیجهای تجاری لاراول
پکیجهای سئو لاراول
پکیجهای لاراول
لاراول یکی از محبوبترین فریمورکها برای توسعه برنامههای وب است؛ که یک محیط توسعه ساده و سریع را برای توسعهدهندگان ارائه میدهد. لاراول با هدف از بین بردن خستگی از پروژههای روتین وب مثل اعتبار سنجی، مسیریابی، sessions و caching فرآیند توسعه را ساده و سر راست میکند. همچنین عملکرد برنامه را قربانی نخواهد کرد و کار توسعهدهندگان را برای انجام عملیاتهای سفارشی تسهیل میکند. به عنوان مثال میتوانید از روشهای مختلفی برای دسترسی به پایگاه دادههای رابطهای استفاده کنید یا از طریق پیکیجها dependency injection یا تزریق وابستگی و موارد دیگر را انجام دهید.
در کل دو نوع پکیج وجود دارد؛ برخی از آنها مستقل از فریمورک هستند (مستقل) و برخی دیگر برای یک فریمورک خاص هستند. در این مقاله از راکت ما به بهترین پکیجهای موجود در بازار توسعه میپردازیم.
یکی از مزیتهای مهم استفاده از پکیجهای لاراول این است که اجازه میدهد به تمام ویژگیهایی که فریمورک به برنامه میزبان خود ارائه میدهد، از جمله مسیریابی، migrations، تستها، ویوها و بسیاری از ویژگیهای مفید دیگر دسترسی داشته باشند. مزیت مهم دیگر این است که خودتون رو تکرار نمیکنید! (DRY یا Don't Repeat Yourself ) .
- یکم بیشتر یادبگیریم!
اصل خودتو تکرار نکن دقیقاً چیه؟
اکثر اوقات ما با کدهایی سر و کار داریم که در جاهای مختلفی از برنامهی ما استفاده میشن، هدف از اصل DRY کاهش اطلاعات تکراری هست ؛ این اصل توسط Andy Hunt و Dave Thomas تهیه شده و این اصل رو در کتاب The Pragmatic Programmer به خوبی شرح دادن.
ما تایپ کردن رو خیلی دوست داریم و با این کار وقت خودمون رو هم شاید تلف کنیم و هدرش بدیم؛ مثلاً یه تکه کد رو هی تکرار میکنیم، اما قطعاً با این کار مدیریت کدها رو برای خودمون و دیگران سخت میکنیم مخصوصاً اگه لازم باشه که جایی رو تغییر بدیم و این جاست که اکثر برنامهنویسها یه جا رو فراموش میکنن و به ارور بر میخورن.
برای نقض نکردن اصل DRY باید برنامهتون رو به قسمتهای مختلف تقسیم کنید؛ یعنی کدهاتون رو به واحدهای کوچکتری تقسیم کنید و فراموشم نکنین که از نوشتن متدهای طولانی پرهیز کنید.
خب حالا مزیت این اصل چیه؟ روشنه که با این کار کدهای کمتری تولید میکنید، برنامهنویسی براتون راحتتر میشه و صد البته که در وقتتون هم صرفهجویی میکنید. به طور مثال یکی از نمونههای خوب برای اصل DRY ، کلاس هلپرها (class helpers) هستن. که توی کتابخانه و فریمورکها بسیار مورد استفاده قرار میگیرن.
در این مقاله بهترین پکیجهای لاراول را که باید در برنامههای لاراولی بشناسید و طور مرتب از آنها استفاده کنید را به شما نشان خواهم داد.
فرآیند توسعه پکیجهای لاراول
برای توسعه پکیجهای لاراول، هنگام نوشتن پکیجها، پکیج شما به طور کلی به تمام هلپر تستهای لاراول دسترسی نخواهد داشت. اگر میخواهید تستی برای پکیج خود بنویسیدکه مثلاً در یک پروژه معمولی لاراول وجو داشته میتوانید از پکیج تست Orchestral Testbench استفاده کنید.
۱. فایل Composer.json خود را برای پکیج جدید خود تنظیم کنید.
۲.Service Provider را اضافه کنید.
۳.Aliasها را تنظیم کنید.
۴. کلاس Facade را ایجاد کنید.
این چهار مرحله مهم، برای نوشتن یک پکیج لاراول است که باید در روند توسعه آن بدانید.
بهترین پکیجهای لاراول
بستهها و پکیجهای بسیاری برای لاراول وجو دارد که باعث میشود برنامهی شما سریعتر ساخته شود، و همچنین امنیت را نیز فراهم میکند.در اینجا پکیجهای برتر لاراول را به شما نشان میدهم که میتوانید برای بهینه سازی برنامه خود از آنها استفاده کنید.
۱.Spatie
نقشها و مجوزها بخش مهمی از بسیاری از برنامههای وب را تشکیل میدهند. لاراول در طول تاریخ خود پکیجهای زیادی برای این کار داشت و همچنین کد اصلی را نیز بهبود میبخشید. Spatie Roles & Permission یکی از بهترین پکیجها برای مجوزهاست.
مزایا
۱.Roles (نقشها)
۲.Permissions ( مجوزها)
۳.Direct Permissions (مجوزهای مستقیم)
۴.Middleware
۵.Multiple Blade Directives
۶.دستورات Artisan
۲.Entrust
این پکیج یک روش انعطافپذیر برای اضافه کردن مجوزهای Role-based ( مبتنی بر نقش) به برنامه لاراول ۵ شما فراهم میکند. این پکیج چهار جدول ایجاد میکند: جدول نقشها(roles) برای ذخیره رکوردهای نقشها، جدول مجوزها (permissions ) برای ذخیره رکوردهای مجوزها، جدول role_user برای ذخیره روابط یک به یک یا one-to-many نقشها و کاربران، جدول permission_role برای ذخیره روابط many-to-many بین نقشها و مجوزها.
با نوشتن کد زیر میتوانید نقش (role) ایجاد کنید:
$admin = new Role();
$admin->name = 'admin';
$admin->display_name = 'User Administrator'; // optional
$admin->description = 'User is allowed to manage and edit other users'; // optional
$admin->save();
بیایید نحوه اختصاص دادن نقشها به کاربران را بررسی کنیم :
user = User::where('username', '=', 'michele')->first();
$user->attachRole($admin);
Now, you must give permissions to these roles:
$createPost = new Permission();
$createPost->name = 'create-post';
$createPost->display_name = 'Create Posts';
$createPost->description = 'create new blog posts';
$createPost->save();
$admin->attachPermission($createPost);
۳.Laravel Debugbar
لاراول دیباگر یکی از بهترین پکیجهای لاراول است که به کاربران کمک میکند تا یک نوار ابزار توسعهدهنده را به برنامه(های) خود اضافه کند. این بسته به طور عمده برای اهداف دیباگ کردن و اشکالزدایی استفاده میشود. گزینههای زیادی در Debugbar وجود دارد. این به شما کمک میکند تا تمام کوئریهایی که برنامه شما ارائه می دهد- همه موارد مربوط به routeها – که شما با آن تماس گرفتهاید را نشان میدهد، همهی templates یا الگوهای ارائه شده و همچنین پارمترهایی که passed شدهاند را نیز نشان میدهد. همچنین میتوانید پیامهایی با استفاده Façade اضافه کنید( هنگامی که اضافه کردید)، آن را در زیر تب پیامها در Laravel Debugbar نمایش میدهد.
Debugbar::info($object);
Debugbar::error('Error!');
Debugbar::warning('Watch out…');
Debugbar::addMessage('Another message', 'mylabel')
۴. Laravel User Verification
این بسته به شما امکان هندل کردن تأیید صحت کاربر و validates کردن ایمیل(ها) را به شما میدهد. این پکیج verification token را generates و آن را برای کاربری که ثبتنام کرده (registered user) ذخیره میکند، ایمیل را با تأیید صحت token link ارسال میکند یا در صف قرار میدهد، تأیید صحت توکنها را هندل میکند و کاربران را تأیید اعتبار میکند.
public function register(Request $request)
{
$this->validator($request->all())->validate();
$user = $this->create($request->all());
event(new Registered($user));
$this->guard()->login($user);
UserVerification::generate($user);
UserVerification::send($user, 'My Custom E-mail Subject');
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
۵.Socialite
Socialite روشی ساده و آسان را برای رسیدگی و هندل کردن احراز هویت Oauth را ارائه میدهد. این پکیج اجازه میدهد تا کاربران از طریق برخی از محبوبترین شبکههای اجتماعی از جمله گوگل، توییتر، فیسبوک، گیتهاب، و بیتباکت وارد سیستم شوند.
$user = Socialite::driver('github')->user();
// OAuth Two Providers
$token = $user->token;
$refreshToken = $user->refreshToken; // not always provided
$expiresIn = $user->expiresIn;
// All Providers
$user->getId();
$user->getName();
$user->getEmail();
$user->getAvatar();
۶.Laravel Mix
لاراول میکس قبلاً با نام لاراول الکسیر شناخته میشد. لاراول میکس یک اینترفیس یا رابط برنامهنویسی برنامه (API) تمیز و غنی برای تعریف مراحل webpack-build برای پروژه شما فراهم میکند.امروزه این پکیج یکی از قدرتمندترین ابزار asset compilation برای لاراول است.
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');
۷.Eloquent-Sluggable
slugging فرآیند ایجاد یک نسخه ساده شده و URL-friendly از یک رشته است؛ با تبدیل آن به یک مورد و از حذف کردن فضاهای بین آن، اهمیت دادن به حروف، ampersands (به علامت & گفته میشود که به جای and به کار میرود) و … .با استفاده از Eloquent-Sluggable، شما میتوانید به راحتی یک slugs برای تمامی Eloquent مدلهای پروژه خود ایجاد کنید.
class Post extends Eloquent
{
use Sluggable;
protected $fillable = ['title'];
public function sluggable() {
return [
'slug' => [
'source' => ['title']
]
];
}
}
$post = new Post([
'title' => 'My Awesome Blog Post',
]);
// $post->slug is "my-awesome-blog-post
۸.Migration Generator
Migration generator یک پکیج لاراول است که میتوانید از آن برای ایجاد یک مایرگریشن به پایگاه داده موجود، از جمله indexها و foreign keyها یا کلیدهای خارجی استفاده کنید. هنگامی که دستور زیر را اجرا میکنید، میتوانید برای همه جداول موجود در پایگاه داده مایگریشن ایجاد کنید.
php artisan migrate:generate
همچنین میتوانید فقط جدولهای خاصی را که میخواهید انتخاب کنید و مایگریشن را انجام دهید:
php artisan migrate:generate table1,table2
۹.Laravel Backup
این پکیج لاراول، نسخه پشتیبان کلیه فایلهای شما را در یک برنامه ایجاد میکند. این بسته یک فایل فشرده ایجاد میکند که شامل کلیه فایلهای موجود در در فهرستهایی است که شما به همراه یک dump از پایگاه داده خود مشخص میکنید. میتوانید از هر فایل سیستمی نسخه پشتیبان ایجاد کنید. برای ایجاد یک نسخه پشتیبان، تمام کاری که شما باید انجام دهید این است که دستور زیر را اجرا کنید:
php artisan backup:run
۱۰.No Captcha
No Captcha یک پکیج برای اجرای اعتبار سنجی Google reCaptcha و محافظت از فرم در مقابل هرزنامهها و اسپم است. ابتدا، باید یک API key رایگان از reCaptcha بگیرید.
NoCaptcha::shouldReceive('verifyResponse')
->once()
->andReturn(true);
$response = $this->json('POST', '/register', [
'g-recaptcha-response' => '1',
'name' => 'Pardeep',
'email' => 'pardeep@example.com',
'password' => '123456',
'password_confirmation' => '123456',
]);
۱۱. Laravel GraphQL
GraphQL یک زبان پرس و جو داده است که جایگزینی برای معماری سنتی REST ارائه میدهد. توسعهدهندگان ساختار دادههای مورد نیاز را تعریف میکنند و دقیقاً همان ساختار را از سرور دریافت میکنند. این پکیج به شما در تنظیم و استفاده از GraphQL در برنامههای لاراول کمک میکند.
سازنده ادمین پنل لاراول
دو گروه بزرگ از سازنده ادمین پنل وجود دارد: سازندگان بصری (visual builders) و کنسول محور یا مبتنی بر کنسول. این انتخاب بستگی به ترجیحات شما دارد، دوست دارید از GUI استفاده کنید یا دستورات Artisan را با پارامترها تایپ کنید.
۱۲. Voyager: ادمین پنل از یاد رفته
Voyager یک رابط حرفهای ممتاز است، اما نکته اصلی این است که فقط کار میکند. دستورالعملهای واضح، تم فرانتاند کاربر پسند، بدون باگ اشکاری و یا بخشهای ناتمام. حتی آیکونهایی مانند تصویر کاپیتان نیز باعث میشود که در کل زیباتر به نظر برسد.
Voyager ویژگیهای جالبی از قبیل دادههای ساختگی(dummy-data)، مدیریت مدیا یا رسانهها و … را ارئه میدهد.
۱۳.LaraAdmin: Admin Panel + CRM
پس از نصب و ورود به صفحه پنل مدیریتی، این پکیج به شما امکان این را میدهد تا ماژولهای visually یا بصری ایجاد کنید؛ که نمایانگر CRUDهای شما هستند.
۱۴.Orchid
پلتفرم RAD برای ساختن یک برنامه تجاری با استفاده از لاراول به خوبی کار میکند. این میتواند به عنوان پایه اصلی برنامههای وب عمل کند، یا میتواند عملکردهای CMS ،CMF یا پنل ادمین را برای وبسایت شما انجام دهد.
پکیجهای تجارت الکترونیک لاراول
۱۵.Bagisto
Bagisto یک پکیج برای تجارت الکترونیکی لاراول است که متنباز میباشد؛ این پکیج در زمان کوتاهی توانست توجه جامعه را به خود جلب کند. این سرویس مدیریت کاربر لاراول خارج از جعبه، گزینههای مدیریتی برای فهرستهای چند انباری و … ارائه میدهد.
همچنین، پکیج CMS لاراول همراه با navigation پنل و کاربرپسند است؛ امکاناتی مانند: Multi-Currency یا چند پولی، بومی سازی، سطوح کنترل دسترسی، چند کانالهMulti-Channel ، Payment integration و … را ارائه میدهد.
۱۶.AvoRed
به راحتی میتوانید، بسته به نیاز خود سبد خرید لاراول که متنباز است را تنظیم و شخصیسازی کنید. این یک رابط mobile-friendly با طرح پیشفرض را به شما ارائه میدهد؛ به همین دلیل به عنوان یکی از بهترین پکیجهای سئو لاراول شناخته میشود.
این پلتفرم به شما امکان میدهد تا کالاهای موجود در دستهبندی قرار دهید یا ویژگیهای آن را مشخص کنید. با قابلیتهای مدیریتی در سفارشهای خود نظم ایجاد کنید تا سفارشات، اطلاعات مشتری، مدیریت موجودی و … را بتوانید پیگیری کنید.
۱۷.Laravel Telescope
لاراول تلسکوپ یک PHP debugger زیبا برای فریمورک لاراول است. این پکیج یک دید واضح و روشن در مورد ریکوئستهای وارد شده به برنامه شما، استثنائات، ورود به سیستم، نمایش کوئریهای دیتابیس، ایمیلها، نوتیفیکیشنها و موارد دیگر ارائه میدهد.
پکیجهای سئو لاراول
Laravel Meta Manager
با استفاده از این پکیج میتوانید وبسایت خود را بهینه کنید و از این طریق وبسایت خود را در صفحه اول موتور جستجو در رتبه برتر قرار دهید. با تأکید بر متا تگها به شما کمک میکند تا مطابق با بهترین شیوههای سئو آنها را اصلاح کنید. این پکیج با متا تگهای پیشنهادی و شامل استانداردهای سئو Dublin Core, Google Plus, Facebook Open Graph و بسیاری دیگر، ارائه میشود.
Laravel Seoable
پرکاربرترین پکیج سئو برای پروژههای لاراول است. این پکیج تکنیکهای مناسب سئو را ارائه میدهد. این بسته برخی از عملکردهای اصلی لاراول را مطابق با بهترین شیوهای سئو، مانند نقشهبرداری از ویژگیهای Eloquent به متا تگهای سئو، تنظیم الگوهای سفارشی برای عنوان/توضیحات صفحه و … را تعریف میکند.
AutoMeta
AutoMeta ابزاری عالی برای بهینه سازی سئو در لاراول است که به برخی از تکنیکهای رایج سئو که مورد استفاده توسعهدهندگان است کمک میکند. این بسته همچنین به رفع اشکالات رایج سئو در برنامه کمک کرده و کد را برای crawl کردن در موتورهای جستجو میکند.
Laravel-seo
Laravel-seo یکی دیگر از بستههای مفید سئو است که به شما امکان میدهد متا تگهای وبسایت را به سهولت درج، مدیریت و حذف کنید. با استفاده از این پکیج، میتوانید دادههای ساختاری را نیز در پروژههای لاراول وارد کنید و میتوانید برخی از متا تگهای سئو مانند Facebook Open Graph, Dublin core و .. را مدیریت کنید.
امیدوارم این مقاله برای شما مفید باشد و از مواردی که گفته شد به راحتی استفاده کنید و نهایت استفاده را ببرید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید