laravel Tutorial

For Laravel preparetion after basic go to link link2 , Laravel7 Official Doc, laravel 7 coostomdocs custom registrationsystem

১. প্রথমে কম্পোজার ইনস্টল করতে হবে।
২. www ডিরেক্টরি তে ইচ্ছামতো একটি ফোল্ডার এর নাম দিয়ে ফোল্ডার তৈরী করি।
৩. cmd দিয়ে www ডিরেক্টরিতে গিয়ে কম্যান্ড এর মাদ্ধমে লারাভেল ইনস্টল করতে হবে। অনেক সময় cmd দিয়ে ডিরেক্টরি চেঞ্জ হয়না (D:) এভাবে ডিরেক্টরি চেঞ্জ করতে হয় এখানে d: দিলে d ড্রাইভ এ কাজ করবে।

৪.cmd তে লিখ composer create-project laravel/laravel firstproject
এখানে blog হলো ফোল্ডার এর নাম
৫. এবার cmd তে প্রজেক্ট ফোল্ডার এ ফিয়ে এই কমান্ড দিতে হবে php artisan serve

লারাভেল রাউটিং

লারাভেল রাউটিং বা ইউআরএল ফরওয়ার্ডিং : লারাভেল এ ইউআরএল বার এ কোন ইউআরএল হলে কোন পেজ শো করবে তা ঠিক করার জন্য route/web.php ফাইল এ কাজ করতে হবে।
আমরা যদি এভাবে লিখি
Route::get(‘/olee’, function () { return ” Olee Is Best”;});
এবং ইউআরএল এ /olee লিখে এন্টার করি তাহলে এরকম আউটপুট আসবে।

আবার আমরা যদি কোনো ভিউ বা টেম্পলেট ফাইল দেখতে চাই তবে নিচের পদ্ধতি অবলম্বন করতে হবে।
আমরা একটি টেম্পলেট ফাইল হিসাবে views ফোল্ডার এর মধ্যে blade.php এক্সটেনশন সহকারে একটি ফাইল রাখলাম যার নাম olee .blade.php এবং তার মধ্যে ইচ্ছামতো কোডিং করলাম এবার ইউআরএল টি পাওয়ানোর জন্য route/web.php ফাইল এ নিচের মতো কোড লিখতে হবে।

html ফর্ম secure করার জন্য নিচের মতো করে কাজ করতে হবে । ফর্ম ট্যাগ এর ফার্স্ট লাইন এ @csrf লিখতে হবে।

<form method="POST" action="/profile">  
    @csrf  
    ...  
</form>  

লারাভেল route এর মধ্যে ইউআরএল এর সাথে প্যারামিটার পাঠানো যাই দুই ভাবে।

Required Parameters
Optional Parameters

Required Parameters
// get the parameter of name
Route::get(‘students/{name}’, function($name) {
echo ‘Students Name is ‘ . $name;
});

একইভাবে আপনি একাধিক Required Parameter পাঠাতে পারেন, নিচের উদাহরণ লক্ষ্য করুন :

Route::get(‘/olee/{name}/{salary}’, function ($name,$sal) {    return “my name is “.$name.$sal;});

Optional Parameters

আপনি যদি আপনার URL এ এমন কিছু Parameter পাঠাতে চান , যা থাকতেও পারে আবার নাও থাকতে পারে। এই সব ক্ষেত্রে আপনাকে Laravel এর Optional Parameter System ব্যবহার করতে হবে। তখন URL এ এই প্যারামিটার গুলির থাকার আবশ্যকীয় নয়। আর এই Parameter গুলির নামের পরে “?” চিহ্ন দিতে হয়। নিম্নের কোডটি লক্ষ্য করুন :

Route::get('users/{name?}', function($name="Olee Ahmmed") {
        echo 'User Name is ' . $name;
});

লারাভেল কন্ট্রোলার :

প্রথমে আমরা যখন কোনো রিকোয়েস্ট পাঠায় তখন প্রথমে সেটা route এ যায় এরপর কন্ট্রোলার কে খুঁজে কন্ট্রোলের এর মধ্যে আমাদের সকল শর্ত সমূহ থাকে তারপর মডেল এ গিয়ে দেখে যে ডাটাবেস হতে কোনো ডাটা আনতে হবে কিনা তার পর সেটা ভিউ এ শো করে।
Laravel Framework এ কিভাবে Controller তৈরী করা হয় ?
প্রথমে লারাভেল এর প্রজেক্ট ফোল্ডার এ গিয়ে কমান্ড প্রম্প এর মাদ্ধমে কন্ট্রোলার তৈরী করতে হবে।
php artisan make:controller homeController লিখে ইন্টার করলে homeController নাম একটি কন্ট্রোলার ফাইল তৈরী হবে app/http /controller ফোল্ডার এর মধ্যে যদি কোনো ফোল্ডার এর মধ্যে কন্ট্রোলার তৈরী করতে হয় তাহলে php artisan make:controller ফোল্ডারনাম/কন্ট্রোলেরনাম এভাবে লিখে এন্টার করতে হবে।ইটা আসলে একটা ক্লাস ফাইল এর মধ্যে মেথড লিখে route হতে এক্সেস করতে হবে।
route এর মাধ্যমে controller class এর যেকোনো মেথড show করা:
আমরা আমাদের কন্ট্রোলার ক্লাস ফাইল এর মধ্যে একটি মেথড তৈরী করলাম এবং সেটাকে route হতে এক্সেস করার জন্য :

// কন্ট্রোলার ক্লাস এর কোড 
<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
 
class homeController extends Controller
{
    public function index(){
        echo "Hello World";
    }
}
// route ফাইল  এর কোড 
Route::get('/home', 'homeController@index');

URL এ Route এর মাধ্যমে Controller এর নির্দিষ্ট Method এ Parameter পাঠানো :

Route::get('/home/{name}/{age}', 'homeController@index');
// আপনি Parameter দুটিকে Optional করে দিতে পারেন 
Route::get('/home/{name?}/{age?}', 'homeController@index');
// কন্ট্রোলার ক্লাস এর কোড 

<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
 
class homeController extends Controller
{
    public function index($name,$age){
        echo "Welcome $name You're $age years old";
    }
 
}

লারাভেল ভিউ :

লারাভেল ভিউ : ইউসার যা ডিসপ্লে তে দেখবে এবং যার মাদ্ধমে রিকোয়েস্ট পাঠাবে এবং বিভিন্ন কাজ করবে তা হলো ভিউ :
Laravel route এর মাধ্যমে view folder এর যেকোনো file display করা :
প্রথমে আমরা resources/views/ ফোল্ডার এর মধ্যে hello.php নামে একটি file তৈরী করি। এবং সেই ফাইল এ নিচের code গুলো দিবো।আমরা চাইলে ভিউ ফাইলটিকে blade এক্সটেনশন দিয়েও সেভ করতে পারি same কাজ করবে।

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
 
        <title>Laravel</title>
 
        <!-- Fonts -->
        <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
 
        <!-- Styles -->
        <style>
            html, body {
                background-color: #fff;
                color: #636b6f;
                font-family: 'Raleway', sans-serif;
                font-weight: 100;
                height: 100vh;
                margin: 0;
            }
 
            .title {
                font-size: 26px;
            }
 
             
            .m-b-md {
                margin-bottom: 30px;
            }
        </style>
    </head>
    <body>
         
 
            <div class="content">
                <div class="title m-b-md">
                    <center>Welcome to Laravel World</center>
                </div>
            </div>
    </body>
</html>

এই hello.php file টি ব্রাউজার দেখানোর জন্য একটা route লিখব , নিম্নের কোডটি routes/web.php তে লিখুন :
Route::get('/hello', function (){ return view("hello"); });

লারাভেল Middleware

Laravel Framework এ Middleware হচ্ছে আপনার application এ বিভিন্ন সোর্স থেকে আসা HTTP request গুলোকে controller এ পাঠানোর আগে filtering করার একটা দুর্দান্ত Mechanism বা পদ্ধতি। ধরুন Laravel authentication Middleware এর কথাই ধরা যাক, যখন আপনার application এ কোনো user লগইন করতে চায়, সেক্ষেত্রে Laravel authentication Middleware কাজ হচ্ছে যেই user লগইন করতে চায় , তাকে authentication Middleware নিজে Middle Man হিসেবে verify করবে , যদি ইউজার authenticated না হয় , তাহলে Laravel authentication Middleware সেই user কে login screen এ পাঠাবে , আর যদি authenticated হন, তাহলে laravel authentication Middleware ইউজারকে পরবর্তী কাজ করার বা পরবর্তী ধাপে যাওয়ার অনুমতি প্রধান করবে। সহজ ভাবে বলা যায় , আপনার application এ যেকোনো request এর পর এবং response এর পূর্বে সব ধরণের verification এবং authentication করার Mechanism হচ্ছে Laravel Middleware. Laravel এ Middleware ফাইল গুলা app/Http/Middleware এই ডিরেক্টরিতে রাখতে হয়।

কিভাবে Middleware তৈরী করা হয় : middleware তৈরী করার জন্য এ নিচের কমান্ডটি রান করুন 
// এখানে checkage মিডলওয়ার এর নাম
php artisan make:middleware CheckAge

আপনার app/Http/Middleware ফোল্ডারে checkAge নামে একটা middleware তৈরী হয়েগেছে
নতুন CheckAge Middleware রেজিস্ট্রেশন : নতুন checkAge Middleware নিয়ে কাজ করতে হলে আপনাকে app/Http/kernel.php file এ এটিকে রেজিস্টার করে দিতে হবে , ঠিক নিচের মতো :

protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'CheckAge' => \App\Http\Middleware\CheckAge::class,
    ];

লারাভেল প্রজেক্ট লোকাল সার্ভার এ রেখে ডাইরেক্ট লোড করা : আমরা জানি লারাভেল এর প্রজেক্ট php artisan serve এই কম্যান্ড দিয়ে একটি সার্ভার এ রান হয় কিন্তু সরাসরি লোড করার জন্য নিচের পদ্ধতি অবলম্বন করতে হবে।
১. রুট ডিরেক্টরি এর server.php কে index.php করতে হবে public ফোল্ডার এর মধ্যে htaccess ফাইল কে রুট ডিরেক্টরিতে কপি করে আন্তে হবে এরপর config ফোল্ডার এর app.php ফাইল এ application URL এ url লাইন এর নিচে এই কোড লিখবে
‘asset_url’ => env(‘APP_URL’, ‘http://localhost/yourprojectname /public’), এখানে যদি লারাভেল রুট ডিরেক্টরি তে থাকে তাহলে ‘asset_url’ => env(‘APP_URL’, ‘http://localhost/public&#8217;),

Published by

Unknown's avatar

Nusrat Faria

I Am A Web Developer And A Android Developer. This Is My Personal Blog So Noted My Work For Helping People .

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.