بلاگ

Laravel

Laravel کے ساتھ ویب ایپلیکیشنز بنانا: روٹنگ، Eloquent ماڈلز، تصدیق، کیوز اور ڈیپلائمنٹ، عملی مثالوں کے ساتھ جو اصل پروجیکٹس میں کام آتی ہیں۔

یہاں ابھی کوئی تحریر نہیں!

ہم نے ابھی اس پر نہیں لکھا۔ براہ کرم کوئی اور موضوع دیکھیں، یا جلد دوبارہ آئیں!

Questions about this topic

Quick, clear answers to what readers ask most about this topic.

Laravel کیا ہے؟

Laravel ویب ایپلیکیشنز بنانے کے لیے ایک مفت اور اوپن سورس PHP فریم ورک ہے۔ یہ ڈویلپرز کو روٹنگ، ڈیٹا بیسز، لاگ ان، ای میل، queues اور ٹیسٹنگ کے تیار حصے دیتا ہے، اس لیے انہیں بار بار کا کوڈ کم لکھنا پڑتا ہے۔ یہ فریم ورک model، view، controller انداز پر چلتا ہے اور اس کی کمیونٹی بہت بڑی ہے۔

Laravel کس کام آتا ہے؟

Laravel مینجمنٹ سسٹمز، کسٹمر پورٹلز، آن لائن اسٹورز، بکنگ پلیٹ فارمز اور موبائل ایپس کی APIs جیسی ویب ایپلیکیشنز بنانے کے کام آتا ہے۔ یہ ہر اس منصوبے کے لیے موزوں ہے جسے صارفین، ڈیٹا بیس اور کاروباری اصول چاہئیں۔ بہت سی کمپنیاں بڑے نجی سسٹمز Laravel پر چلاتی ہیں کیونکہ یہ فریم ورک مستحکم ہے اور اسے بڑھانا آسان ہے۔

کیا Laravel نئے سیکھنے والوں کے لیے اچھا ہے؟

Laravel ان نئے سیکھنے والوں کے لیے اچھا ہے جو پہلے سے بنیادی PHP جانتے ہیں، کیونکہ اس کا کوڈ پڑھنے میں آسان اور سرکاری دستاویزات واضح ہیں۔ اس کی بڑی کمیونٹی، بہت سے ٹیوٹوریلز اور starter kits بھی ہیں جو آپ کے لیے لاگ ان صفحات تیار کر دیتی ہیں۔ پہلے سادہ PHP سیکھنا فریم ورک کو سمجھنا بہت آسان بنا دیتا ہے۔

اپنے کمپیوٹر پر Laravel کیسے انسٹال کریں؟

Laravel انسٹال کرنے کے لیے پہلے PHP اور Composer انسٹال کریں، پھر composer create-project laravel/laravel کے بعد اپنے منصوبے کا نام لکھ کر چلائیں۔ laravel new سے چلنے والا Laravel installer بھی یہی کام کرتا ہے اور starter kits پیش کرتا ہے۔ اس کے بعد php artisan serve مقامی سرور شروع کرتا ہے تاکہ آپ ایپ براؤزر میں کھول سکیں۔

Laravel کو PHP کا کون سا ورژن چاہیے؟

Laravel کو PHP 8 کا کوئی حالیہ ورژن چاہیے، اور ہر Laravel ریلیز بتاتی ہے کہ وہ کم از کم کون سا PHP ورژن سپورٹ کرتی ہے۔ نئی Laravel ریلیزز پرانے PHP ورژنز کی سپورٹ ختم کر دیتی ہیں جب ان کی سیکیورٹی سپورٹ ختم ہو جائے۔ جس Laravel ورژن کو استعمال کرنا ہو اس کی upgrade guide ہمیشہ دیکھیں۔

Laravel میں روٹنگ کیا ہے؟

Laravel میں روٹنگ ایک ویب پتے اور GET یا POST جیسے HTTP میتھڈ کو اس کوڈ سے جوڑتی ہے جو اس کا جواب دیتا ہے۔ Routes صفحات کے لیے routes/web.php اور APIs کے لیے routes/api.php جیسی فائلوں میں لکھے جاتے ہیں۔ Route کسی closure یا controller میتھڈ کو بلا سکتا ہے اور لاگ ان اور دوسری جانچوں کے لیے middleware رکھ سکتا ہے۔

Laravel میں Eloquent کیا ہے؟

Eloquent، Laravel کا ORM ہے، یعنی وہ حصہ جو آپ کو ڈیٹا بیس ٹیبلز کے ساتھ models کہلانے والی PHP classes کی طرح کام کرنے دیتا ہے۔ ہر model ایک ٹیبل اور ہر object ایک قطار سے جڑا ہوتا ہے، اس لیے آپ SQL لکھے بغیر ڈیٹا پڑھ اور محفوظ کر سکتے ہیں۔ Eloquent، one-to-many اور many-to-many جیسے تعلقات بھی سنبھالتا ہے۔

Laravel میں Eloquent relationships کیسے کام کرتے ہیں؟

Laravel میں Eloquent relationships کسی model پر hasMany، belongsTo اور belongsToMany جیسے میتھڈز ہیں جو بیان کرتے ہیں کہ دو ٹیبلز کیسے جڑے ہیں۔ ایک بار طے ہونے کے بعد آپ join لکھے بغیر $order->customer جیسے انداز میں متعلقہ ڈیٹا پڑھ سکتے ہیں۔ with میتھڈ کے ساتھ eager loading متعلقہ قطاریں ایک ساتھ لوڈ کرتی ہے اور سست بار بار کی queries سے بچاتی ہے۔

Laravel میں N+1 query کا مسئلہ کیا ہے؟

Laravel میں N+1 query کا مسئلہ اس وقت ہوتا ہے جب کوڈ ریکارڈز کی فہرست لوڈ کرے اور پھر ہر ریکارڈ کا متعلقہ ڈیٹا لانے کے لیے ایک اضافی query چلائے۔ 100 آرڈرز والا صفحہ 101 queries چلا کر سست ہو سکتا ہے۔ with میتھڈ کے ساتھ eager loading متعلقہ قطاریں ایک query میں لا کر یہ مسئلہ حل کرتی ہے۔

Laravel میں migrations کیا ہیں؟

Laravel میں migrations وہ PHP فائلیں ہیں جو کوڈ کے ذریعے ڈیٹا بیس ٹیبلز بناتی اور بدلتی ہیں۔ php artisan migrate چلانے سے یہ لاگو ہوتی ہیں، اس لیے ہر ڈویلپر اور ہر سرور کو ایک ہی ڈیٹا بیس ڈھانچہ ملتا ہے۔ چونکہ migrations ورژن کنٹرول میں رہتی ہیں، اس لیے ہر ٹیبل کی تبدیلی کی تاریخ محفوظ رہتی ہے۔

Laravel میں Blade کیا ہے؟

Blade، Laravel کا ٹیمپلیٹ انجن ہے جو loops، شرائط اور layouts کے سادہ ٹیگز کے ساتھ HTML صفحات لکھنے دیتا ہے۔ Blade طے شدہ طور پر چھاپی جانے والی قدروں کو escape کرتا ہے، جو صفحات کو cross-site scripting سے بچاتا ہے۔ ٹیمپلیٹس سادہ PHP میں کمپائل ہو کر کیش ہو جاتے ہیں، اس لیے Blade ہر درخواست پر تقریباً کوئی بوجھ نہیں ڈالتا۔

Laravel میں authentication کیسے کام کرتی ہے؟

Laravel میں authentication، guards کے ذریعے کام کرتی ہے جو جانچتے ہیں کہ صارف کون ہے، اور providers کے ذریعے جو ڈیٹا بیس سے صارفین لوڈ کرتے ہیں۔ Laravel Breeze جیسی starter kits تیار لاگ ان، رجسٹریشن اور پاس ورڈ ری سیٹ صفحات شامل کرتی ہیں۔ پاس ورڈز bcrypt یا Argon2 سے hash ہوتے ہیں، اس لیے کبھی سادہ متن میں محفوظ نہیں ہوتے۔

Laravel Sanctum اور Laravel Passport میں کیا فرق ہے؟

Laravel Sanctum سنگل پیج ایپس، موبائل ایپس اور سادہ APIs کے لیے آسان ٹوکن اور cookie لاگ ان دیتا ہے، جبکہ Laravel Passport ایک مکمل OAuth2 سرور ہے۔ زیادہ تر منصوبوں کو صرف Sanctum چاہیے کیونکہ یہ ہلکا اور سیٹ کرنے میں آسان ہے۔ Passport ان صورتوں کے لیے موزوں ہے جہاں بیرونی ایپلیکیشنز کو آپ کے صارفین کی طرف سے لاگ ان کرنا ہو۔

Laravel میں middleware کیا ہیں؟

Laravel میں middleware وہ تہیں ہیں جو درخواست کے آپ کے کوڈ تک پہنچنے سے پہلے یا جواب کے نکلنے سے پہلے اسے جانچتی یا بدلتی ہیں۔ عام middleware لاگ ان کی جانچ، CSRF سے تحفظ، درخواستوں کی حد بندی اور زبان کی سیٹنگز سنبھالتے ہیں۔ آپ middleware کو ایک route، routes کے گروپ یا پوری ایپلیکیشن سے جوڑ سکتے ہیں۔

Laravel میں queues کیسے کام کرتی ہیں؟

Laravel میں queues سست کاموں، جیسے ای میل بھیجنا یا رپورٹس بنانا، کو ویب درخواست سے نکال کر پس منظر کے jobs میں منتقل کرتی ہیں۔ Job کو Redis یا ڈیٹا بیس جیسے queue driver میں بھیجا جاتا ہے، اور php artisan queue:work سے شروع ہونے والا worker اسے چلاتا ہے۔ صارف کو فوری جواب ملتا ہے جبکہ بھاری کام پس منظر میں مکمل ہوتا ہے۔

Laravel ایپلیکیشن میں queues کب استعمال کرنی چاہئیں؟

Laravel ایپلیکیشن میں queues اس وقت استعمال کریں جب کوئی کام ایک لمحے سے زیادہ لے یا کسی بیرونی سروس سے رابطہ کرے، جیسے ای میل، فائل پروسیسنگ یا ادائیگی کے webhooks۔ Queues صفحات کو تیز رکھتی ہیں اور ناکام jobs کو خود دوبارہ کوشش کرنے دیتی ہیں۔ Laravel Horizon، Redis queues پر نظر رکھنے کے لیے ڈیش بورڈ دیتا ہے۔

Laravel میں کاموں کا شیڈول کیسے بنائیں؟

Laravel میں کاموں کا شیڈول بنانے کے لیے انہیں scheduler میں daily یا everyFiveMinutes جیسے میتھڈز کے ساتھ طے کریں، پھر سرور پر ایک cron اندراج سے ہر منٹ php artisan schedule:run چلائیں۔ پھر scheduler طے کرتا ہے کہ کون سے کام کا وقت آ گیا ہے۔ اس طرح تمام وقت والے کام بہت سی الگ cron لائنوں کے بجائے کوڈ میں رہتے ہیں۔

Laravel میں فارم کے ڈیٹا کی توثیق کیسے کریں؟

Laravel میں فارم کے ڈیٹا کی توثیق request کے validate میتھڈ سے یا اصول رکھنے والی Form Request class سے کریں۔ required، email، max اور unique جیسے اصول آپ کے کوڈ کے استعمال سے پہلے ہر خانے کو جانچتے ہیں۔ توثیق ناکام ہو تو Laravel صارف کو غلطی کے پیغامات اور پرانے ان پٹ کے ساتھ واپس بھیج دیتا ہے۔

Laravel عام ویب حملوں سے کیسے بچاتا ہے؟

Laravel فارمز پر CSRF ٹوکنز، Blade میں escape شدہ آؤٹ پٹ، ڈیٹا بیس queries میں parameter binding اور hash شدہ پاس ورڈز کے ذریعے عام ویب حملوں سے بچاتا ہے۔ یہ طے شدہ تحفظات عام استعمال میں cross-site request forgery، cross-site scripting اور SQL injection کو روکتے ہیں۔ پھر بھی ڈویلپرز کو ان پٹ کی توثیق، اجازتوں کی جانچ اور فریم ورک کو اپ ڈیٹ رکھنا ہوتا ہے۔

Laravel ایپلیکیشن کو سرور پر deploy کیسے کریں؟

Laravel ایپلیکیشن deploy کرنے کے لیے کوڈ سرور پر لائیں، dev packages کے بغیر composer install چلائیں، .env فائل سیٹ کریں اور migrations چلائیں۔ پھر config، routes اور views کو کیش کریں اور ویب سرور کو public فولڈر کی طرف کریں۔ بہت سی ٹیمیں یہ مراحل Git سے خودکار کرتی ہیں تاکہ ہر ریلیز یکساں ہو۔

Laravel ایپلیکیشن کو کیسا سرور چاہیے؟

Laravel ایپلیکیشن کو ایسا سرور چاہیے جس میں PHP، Nginx یا Apache جیسا ویب سرور، MySQL یا PostgreSQL جیسا ڈیٹا بیس اور Composer ہو۔ کیش اور queues کے لیے اکثر Redis شامل کیا جاتا ہے، اور ایک process manager، queue workers کو چلتا رکھتا ہے۔ Linkysoft کا ہوسٹنگ برانڈ Hostrena، Laravel کے لیے ویب ایپ ہوسٹنگ دیتا ہے جو براہِ راست Git سے deploy ہوتی ہے۔

Laravel ایپلیکیشن کو تیز کیسے بنائیں؟

Laravel ایپلیکیشن تیز بنانے کے لیے config، routes اور views کو کیش کریں، relationships کو eager load کریں اور تلاش کیے جانے والے ڈیٹا بیس کالموں پر indexes لگائیں۔ سست کام queues میں منتقل کرنا اور بھاری query نتائج کو Redis میں کیش کرنا مزید مدد کرتا ہے۔ سرور پر PHP OPcache آن کرنا کم محنت میں بڑا فائدہ دیتا ہے۔

Laravel ایپلیکیشن کی ٹیسٹنگ کیسے کریں؟

Laravel ایپلیکیشن کی ٹیسٹنگ PHPUnit یا Pest سے کریں، جو ہر نئے منصوبے میں پہلے سے سیٹ ہوتے ہیں۔ Feature tests آپ کے routes کو فرضی درخواستیں بھیج کر جواب اور ڈیٹا بیس جانچتے ہیں، جبکہ unit tests الگ الگ classes جانچتے ہیں۔ php artisan test چلانے سے پورا مجموعہ چلتا ہے۔

کیا Laravel بہت سے صارفین والی بڑی ایپلیکیشنز سنبھال سکتا ہے؟

جی ہاں، Laravel بہت سے صارفین والی بڑی ایپلیکیشنز سنبھال سکتا ہے جب یہ کیشنگ، queues، ڈیٹا بیس indexes اور load balancer کے پیچھے ایک سے زیادہ ایپ سرورز کے ساتھ اچھے سرورز پر چلے۔ رکاوٹ شاذ و نادر ہی خود فریم ورک ہوتا ہے، عموماً سست queries اور کیش کی کمی ہوتی ہے۔ اسی لیے Linkysoft کسٹم ویب ایپلیکیشنز PHP، Laravel، MySQL اور Redis سے بناتی ہے۔

مجھے اپنا Laravel ورژن کتنی بار اپ گریڈ کرنا چاہیے؟

آپ کو اپنا Laravel ورژن کم از کم اس وقت سے پہلے اپ گریڈ کرنا چاہیے جب موجودہ ورژن کو سیکیورٹی درستیاں ملنا بند ہو جائیں۔ Laravel تقریباً ہر سال ایک بڑا ورژن جاری کرتا ہے اور ہر ایک کے ساتھ upgrade guide آتی ہے۔ چھوٹی اور باقاعدہ اپ گریڈز ایک ساتھ کئی ورژن پھلانگنے سے کہیں آسان ہیں۔