ডেভসংকেত

লারাভেল পিএইচপি ফ্রেমওয়ার্কিং

লারাভেল একটি ওপেন সোর্স পিএইচপি ফ্রেমওয়ার্ক। ২০১১ সালে টেইলর অটওয়েল প্রথম লারাভেল ডেভেলপ করেন। সাধারণ ব্লগ, কনটেন্ট ম্যানেজমেন্ট সিস্টেম, ইকমার্স সাইট, বড় ধরনের ওয়েব এপ্লিকেশন, কিংবা মোবাইল এপ্লিকেশনের জন্য JSON নির্ভর এপ্লিকেশন সহ সব কিছুই এখন লারাভেল ব্যবহার করে ডেভেলপ করা সম্ভব।

কন্ট্রিবিউটর

  • tarikmanoar
  • zonayedpca
  • JakariaBlaine
  • shakilahmed0369
  • milanu13
  • sabbir268
  • shaonkabir8
  • sazibuddin
  • ahmadeyamin
  • princerafid01
  • bdmotaleb
  • AminulBD
  • ashraf789
  • nayeemdev
  • sabbirshawon

শেয়ার করুন

আরটিসান কমান্ড

  • প্রোজেক্ট স্টার্ট করার জন্য

    php artisan serve
  • রাউট কে ক্যাশে নেয়া

    php artisan route:cache
  • ক্যাশ থেকে রাউট মুছে ফেলা

    php artisan route:clear
  • লারাভেলের সকল আরটিসান কমান্ড লিস্ট

    php artisan list
  • কনফিগারেশন ক্যাশে নেয়া

    php artisan config:cache
  • ক্যাশ থেকে কনফিগারেশন মুছে ফেলা

    php artisan config:clear
  • প্রোজেক্ট টি মেইনটেইনেন্স মোডে নেয়ার জন্য

    php artisan down
  • প্রোজেক্ট টি লাইভে নিয়ে আসা

    php artisan up
  • মিডেল ওয়ার ক্রিয়েট করা

    php artisan make:middleware <middleware-name>
  • কনট্রোলার ক্রিয়েট করা

    php artisan make:controller <controller-name>
  • রিকোয়েস্ট ফরম ক্রিয়েট করা

    php artisan make:request <request-name>
  • একটি নির্ধারিত নেমস্পেস ক্রিয়েট করা

    php artisan app:name devsonket
  • লারাভেলে ইভেন্ট জেনারেট করা

    php artisan event:generate
  • সার্ভিস প্রভাইডার ক্রিয়েট করা

    php artisan make:provider <provider-name>
  • লারাভেলর ডিফল্ট অথ ব্যবহার করা

    php artisan make:auth
  • নিজস্ব কমান্ড লাইন তৈরি করা

    php artisan make:console <name-of-command>
  • কি জেনারেট

    php artisan key:generate
  • ক্যাশের সকল ডাটা মুছে ফেলা

    php artisan cache:clear
  • মাইগ্রেশন ক্রিয়েট করা

    php artisan make:migration create_devsonket_table --create=devsonket
  • মডেল ক্রিয়েট করা

    php artisan make:model ModelName
  • মডেল এবং মাইগ্রেশন এক সাথে ক্রিয়েট করা

    php artisan make:model ModelName -m
  • ডাটাবেসে টেবিল মাইগ্রেট করা

    php artisan migrate
  • ডাটাবেসের পূর্বের অবস্থানে ফিরে যাওয়া অথবা রোল ব্যাক করা

    php artisan migrate:rollback
  • মাইগ্রেশন ব্যবহার করে সকল টেবিল মুছে ফেলা

    php artisan migrate:reset
  • ডাটাবেসের পূর্বের অবস্থানে ফিরে যাওয়া এবং মাইগ্রেট করা

    php artisan migrate:refresh
  • একবারে সকল টেবিল মুছে ফেলার পরে, নতুন করে টেবিল তৈরি করতে চাইলে

    php artisan migrate:fresh
  • ছিড ক্রিয়েট করা

    php artisan make:seeder create_devsonket_seed
  • সব ছিড ফাইল একেবারে জেনারেট করা

    php artisan db:seed
  • নির্দিষ্ট একটা ছিড ফাইল জেনারেট করা

    php artisan db:seed --class=create_devsonket_seed
  • নুতন ডাটাবেস মাইগ্রেট এর সাথে সিড ফাইল গুলা ও জেনারেট করা

    php artisan migrate:fresh --seed

ব্লেড টেমপ্লেট

  • যেকোনো value প্রদর্শন করতে ব্যবহৃত হয়

    @yield
  • টেমপ্লেটের যেকোনো section define করতে ব্যবহৃত হয়

    @section
  • define করা section end করতে ব্যবহৃত হয়

    @endsection
  • এক view file কে অন্য view file এ include করার জন্য

    @include
  • Master Layout কে Child Layout এ extends বা inherit করার জন্য

    @extends
  • লারাভেল ব্লেড টেমপ্লেটে Comments করা

    {{-- devsonket --}}
  • ব্লেড টেমপ্লেটে PHP Variable থেকে HTML রেন্ডার করা

    {!! devsonket !!}
  • ব্লেড টেমপ্লেটে Vue JS এর Syntax ব্যবহার করা

    @{{ devsonket }}
  • ব্লেড টেমপ্লেটের মধ্যে পিএইচপি ব্লক লেখার জন্য

    @php
  • পিএইচপি ব্লক টি end করার জন্য

    @endphp
  • css file, js file এবং যেকোনো image link করার জন্য

    {{ asset('your_asset_file_path') }}
  • বিভিন্ন page এর সাথে লিংক করার জন্য

    {{URL::to('/your_page_link')}}
  • লাইন ব্রেক রাখার জন্য

    {!! nl2br(e($content)) !!}

রাউটিং

  • বেসিক রাউটিং-১

    Route::get('foo', function(){});
  • লারাভেল ৮ রাউটিং

    Route::get('/user', [UserController::class, 'index']);
  • লারাভেল ৮ রেস্টফুল রাউটিং

    Route::resource('user', UserController::class);
  • লারাভেল ৮ মডেল বাইন্ডিং রাউট-1

    Route::get('user/{user}', [UserController::class, 'show']);
  • লারাভেল ৮ মডেল বাইন্ডিং রাউট (with slug)-2

    Route::get('user/{user:slug}', [UserController::class, 'show']);
  • লারাভেল ৮ view routing

    Route::view('user/', 'blade_path');
  • বেসিক রাউটিং-২

    Route::get('foo', '[email protected]');
  • বেসিক রাউটিং-৩

    Route::controller('foo', 'FooController');
  • রেস্টফুল কন্ট্রোলার-১

    Route::resource('posts','PostsController');
  • রেস্টফুল কন্ট্রোলার-২

    Route::resource('photo', 'PhotoController',['only' => ['index', 'show']]);
  • রেস্টফুল কন্ট্রোলার-৩

    Route::resource('photo', 'PhotoController',['except' => ['update', 'destroy']]);
  • ট্রিগারিং এররস-১

    App::abort(404);
  • ট্রিগারিং এররস-২

    App::missing(function($exception){});
  • ট্রিগারিং এররস-৩

    throw new NotFoundHttpException;
  • ট্রিগারিং এররস-4

    return abort(error code, error message)
  • রাউট প্যারামিটার-১

    Route::get('foo/{bar}', function($bar){});
  • রাউট প্যারামিটার-২

    Route::get('foo/{bar?}', function($bar = 'bar'){})
  • http verbs:any

    Route::any('foo', function(){});
  • http verbs:post

    Route::post('foo', function(){});
  • http verbs:put

    Route::put('foo', function(){});
  • http verbs:patch

    Route::patch('foo', function(){});
  • http verbs:delete

    Route::delete('foo', function(){});
  • রেস্টফুল একশন্স

    Route::resource('foo', 'FooController');
  • সিকিউর রাউট

    Route::get('foo', array('https', function(){}));
  • রাউট কন্সট্রেইন্টস

    Route::get('foo/{bar}', function($bar){})

বেসিক ডাটাবেস ব্যবহার - ও আর এম (ORM)

  • একটি নির্দিষ্ট মডেলের সকল ডেটা নিয়ে আসতে চাইলে

    Model::all();
  • একটি নির্দিষ্ট মডেলের সকল ডেটা হতে সিলেকটেড কলাম রিটার্ন এর জন্য

    Model::all(['id', 'name', 'email']);
  • একটি নির্দিষ্ট মডেলের কন্ডিশন অনুযায়ী ডেটা নিয়ে আসতে চাইলে

    Model::where('columnName','matchingValue')->get();
  • মডেলের প্রথম ডেটা নিয়ে আসতে চাইলে

    Model::first();
  • মডেলের প্রথম ডেটা নিয়ে আসা বা ডাটা না পেলে ৪০৪ এ রিটার্ন করা

    Model::firstOrFail();
  • কোন মডেলের আইডি দিয়ে খুঁজে বের করার জন্য

    Model::find(yourId);
  • আইডি দিয়ে মাল্টিপাল মডেল খুঁজে বের করার জন্য

    Model::find([1,2,3]);
  • কোন মডেলের আইডি দিয়ে খুঁজে বের করা এবং ডাটা না পেলে ৪০৪ এ রিটার্ন করার জন্য

    Model::findOrFail(yourId);
  • মডেলের কতগুলা ডেটা ফিরে আসলো তা গুনতে হলে

    Model::where('columnName','matchingValue')->count();
  • মডেল দিয়ে CREATE করতে চাইলে

    Model::create(pass your data array);
  • মডেল দিয়ে SELECT করতে চাইলে

    Model::select('columnName','columnName')->get();
  • মডেল দিয়ে UPDATE করতে চাইলে

    Model::find(yourId)->update(your updated data array);
  • মডেল দিয়ে DELETE করতে চাইলে

    Model::find(yourId)->delete();
  • মডেল এর ডেটা লিমিট করার জন্য

    Model::where('columnName','matchingValue')->limit(limiterNumber)->get();
  • মডেলের মধ্যে mass assignment ইনাবল করার জন্য

    protected $guarded = [];
  • মডেলের মধ্যে নির্দিষ্ট কলামের mass assignment ডিজাবল করার জন্য

    protected $guarded = ['column_name_one','column_name_two','column_name_three'...];
  • মডেলের মধ্যে নির্দিষ্ট কলামের mass assignment ইনাবল করার জন্য

    protected $fillable = ['column_name_one','column_name_two','column_name_three'...];
  • মডেল দিয়ে DELETE করতে চাইলে

    Model::find(yourId)->delete();
  • মডেল দিয়ে DELETE করতে চাইলে

    Model::find(yourId)->delete();
  • মডেলর সর্বশেষ রেকর্ড গুলো পেতে চাইলে

    Model::latest()->get();
  • মডেলর প্রবীণতম রেকর্ড গুলো পেতে চাইলে

    Model::oldest()->get();
  • মডেল দিয়ে শেষের রেকর্ডটি পেতে চাইলে

    Model::all()->last() অথবা Model::latest()->first() অথবা Model::orderBy('id', 'desc')->first()
  • Where Method এর মাঝে 'or' পাস করা

    Model::where('columnName', 'value')->orWhere('columnName','value')->get();  অথবা Model::where('columnName', 'value')->where('columnName','value', 'or')->get();

কার্বন (তারিখ ও সময়) এর ব্যবহার

  • কারেন্ট সময় ও তারিখ জানার জন্য

    Carbon::now();
  • আজকের দিন বা তারিখ জানার জন্য

    Carbon::today();
  • গতকাল এর দিন বা তারিখ জানার জন্য

    Carbon::yesterday();
  • আগামী কাল এর দিন বা তারিখ জানার জন্য

    Carbon::tomorrow();
  • ডাটাবেজ ফর্মেটে কনভার্ট করার জন্য

    Carbon::createFromFormat('y-m-d H:i:s','2020-08-10 12:34:35','Europe/London');
  • $now = Carbon::now() অবজেক্ট থেকে সেকেন্ড জানার জন্য

    $now->secound;
  • $now = Carbon::now() অবজেক্ট থেকে মিনিট জানার জন্য

    $now->minute;
  • $now = Carbon::now() অবজেক্ট থেকে ঘন্টা জানার জন্য

    $now->hour;
  • $now = Carbon::now() অবজেক্ট থেকে মাস জানার জন্য

    $now->monthName;
  • $now = Carbon::now() অবজেক্ট থেকে সপ্তাহের কত তম দিন জানার জন্য

    $now->dayOfWeek;
  • $now = Carbon::now() অবজেক্ট থেকে মাসের কত তম সপ্তাহ জানার জন্য

    $now->weekNumberInMonth;
  • $now = Carbon::now() অবজেক্ট থেকে বছরের কত তম সপ্তাহ জানার জন্য

    $now->weekOfYear;
  • $now = Carbon::now() অবজেক্ট থেকে মাসের শেষ তারিক ও সময় জানার জন্য

    $now->endOfMonth;
  • $now = Carbon::now() অবজেক্ট থেকে আগামি সপ্তাহ কবে জানার জন্য

    $now->nextWeekDay();
  • দিন বা তারিখ জানার জন্য

    Carbon::nextWeekDay();

ডাটাবেস কলাম মেথড

  • অটো ইনক্রিমেন্টের জন্য

    $table->increments('id');
  • বড় ইনক্রিমেন্টের জন্য

    $table->bigIncrements('id');
  • বড় ইনটেজার টাইপের ডাটার জন্য

    $table->bigInteger('votes');
  • বুলিয়ান টাইপের ডাটার জন্য

    $table->boolean('confirmed');
  • ক্যারেক্টার টাইপের ডাটা এবং সাথে অপসোনাল দৈর্ঘ্য

    $table->char('name', 100);
  • তারিখ এর জন্য

    $table->date('created_at');
  • তারিখ এবং টাইমের জন্য

    $table->dateTime('created_at');
  • তারিখ,টাইম এবং সাথে টাইম জোনের জন্য

    $table->dateTimeTz('created_at');
  • ডেসিমেল সংখ্যার জন্য, সাথে টোটাল সংখ্যা,স্কেল ও ডেসিমেল ডিজিট

    $table->decimal('amount', 8, 2);
  • ডাবোল টাইপের ডাটার জন্য, সাথে টোটাল সংখ্যা,স্কেল ও ডেসিমেল ডিজিট

    $table->double('amount', 8, 2);
  • জ্যামিতির জন্য

    $table->geometry('positions');
  • ইনটেজার টাইপের ডাটার জন্য

    $table->integer('votes');
  • আইপি এড্রেস এর জন্য

    $table->ipAddress('visitor');
  • ম্যাক এড্রেস এর জন্য

    $table->macAddress('device');
  • জেসন ডাটা ফরমেটের জন্য

    $table->json('options');
  • লম্বা অথবা বড় কোন লেখার জন্য

    $table->longText('description');
  • মাঝারি পূর্ণ সংখ্যার জন্য

    $table->mediumInteger('votes');

ব্লেড টেমপ্লেট এ জাভাস্ক্রিপ্ট

  • জাভাস্ক্রিপ্ট এ কন্ট্রোলার এর প্যারামিটার রিছিভ করা

    var data = {!! json_encode($key) !!};

বেসিক ডাটাবেস ব্যবহার - কুয়েরি বিল্ডার

  • সিলেক্ট কুয়েরি(Query)

    $results = DB::select('select * from users where id = ?', [1]);
  • কোনো টেবিলের সকল ডাটা পাওয়ার জন্য

    DB::table('name')->get();
  • কোনো টেবিলের একটি রো এর ডাটা পাওয়ার জন্য

    $user = DB::table('users')->where('name', 'Nayeem')->first();
  • কোনো টেবিলের রো এর একটি কলামের ডাটা পাওয়ার জন্য

    $name = DB::table('users')->where('name', 'Nayeem')->pluck('name');
  • কোনো একটি কলামের ডাটা লিস্ট আকারে পাওয়ার জন্য

    $roles = DB::table('roles')->lists('title', 'name');
  • সিলেক্ট ক্লজ দিয়ে নির্দিষ্ট কলামের ডাটার জন্য

    $users = DB::table('users')->select('name', 'email')->get();
  • WHERE অপারেটরের ব্যবহার

    $users = DB::table('users')->where('votes', '>', 100)->get();
  • ডাইনামিক WHERE অপারেটরের ব্যবহার

    $admin = DB::table('users')->whereId(1)->first();
  • orderBy অপারেটরের ব্যবহার

    DB::table('users')->orderBy('column')->get();
  • orderBy অপারেটরের ব্যবহার

    DB::table('users')->groupBy('column')->get();
  • having অপারেটরের ব্যবহার

    DB::table('users')->having('count', '>', 100)->get();
  • বেসিক জয়েন কুয়েরি

    DB::table('users')->join('contacts', 'users.id', '=', 'contacts.user_id')->select('users.id', 'contacts.phone')->get();
  • লেফ্ট জয়েন কুয়েরি

    DB::table('users')->leftJoin('posts', 'users.id', '=', 'posts.user_id')->get();
  • রো কাউন্ট করার জন্য

    $users = DB::table('users')->count();
  • গড় করার জন্য

    $average = DB::table('products')->avg('price');
  • সমষ্টি বের করার জন্য

    $sum = DB::table('products')->sum('votes');
  • সর্বনিম্ন মান বের করার জন্য

    $min = DB::table('products')->min('votes');
  • সর্বাধিক মান বের করার জন্য

    $max = DB::table('products')->max('votes');
  • ডাটা ইনসার্ট করার জন্য

    DB::table('users')->insert(['name' => 'nayeem' 'email' => '[email protected]', 'votes' => 0]);
  • ডাটা আপডেট করার জন্য

    DB::table('users')->where('id', 1)->update(['votes' => 1])
  • ডিলিট করার জন্য

    DB::table('users')->where('votes', '<', 100)->delete();

সেশন এর ব্যবহার

  • সেশন থেকে একটি আইটেম আনার জন্য

    Session::get('key', 'default');
  • সেশন এর আইডি পাওয়ার জন্য

    Session::getId();
  • সেশনে একটি কী , ভ্যালু রাখার জন্য

    Session::put('key', 'value');
  • সেশনে একটি অ্যারেতে একটি মান পুশ করার জন্য

    Session::push('foo.bar','value');
  • সেশন থেকে সকল আইটেম পাওয়ার জন্য

    Session::all();
  • সেশন এ আইটেম আছে কি না চেক করার জন্য

    Session::has('key');
  • সেশন থেকে একটি আইটেম মুছে ফেলার জন্য

    Session::forget('key');
  • সেশন থেকে সকল আইটেম মুছে ফেলার জন্য

    Session::flush();

যেখানে সম্ভব সেখানে সংক্ষিপ্ত এবং বেশি পাঠযোগ্য সিনট্যাক্স ব্যবহার করুন

  • সেসন থেকে ডাটা নিতে

    session('cart'), Session::get('cart'), $request->session()->get('cart')
  • সেসন এ ডাটা স্টোর করতে

    session(['cart' => $data]), Session::put('cart', $data)
  • রিকুয়েস্ট থেকে ডাটা নিতে

     $request->name, request('name'), $request->input('name'), Request::get('name')
  • রিকুয়েস্ট রিটার্ন করতে

    return back(),return Redirect::back()
  • ফাকা/শূন্য অবজেক্রটের ডাটা প্রিন্ট করতে

    optional($object->relation)->id, is_null($object->relation) ? null : $object->relation->id
  • ব্লেডে ডাটা সেন্ড করতে

    return view('index', compact('title', 'client')), return view('index')->with('title', $title)->with('client', $client), return view('index',['title'=>$title,'client'=>$client]
  • রিকুয়েস্ট থেকে ডাটা চেক করে ডাটা নিতে

    $request->has('value') ? $request->value : 'default', $request->get('value', 'default') 
  • ডাটাবেজ এ কন্ডিশন দিয়ে ডাটা বের করতে

    ->where('column', '=', 1), ->where('column', 1), ->whereColumn(1)
  • web.php Route ফাইলে কন্টোলার ইমপোর্ট এর সর্টকার্ট

    App/Http/Controllers/{ 1st controller, 2nd controller, 3rd controller}
  • কন্ট্রোলার থেকে কোথাও রিডিরেক্ট করে দিতে চাইলে

    redirect('/path/to/route'), redirect()->route('route-name')
  • কন্ট্রোলার থেকে ফ্ল্যাশ সেশন নিয়ে রিডাইরেক্ট করতে চাইলে

    redirect('/path/to/route')->with('status', 'Your post has been published successfully!')

ডেভসংকেত সম্পর্কে

ডেভসংকেত এর লক্ষ্য হচ্ছে বাংলাতে একটা বড় চিটশিটের ভান্ডার গড়ে তোলা। এটা সম্পূর্ণ স্বাধীন এবং ওপেন সোর্স গিটহাব অর্গানাইজেশন।

স্পন্সর