Where does it come from

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since

Why do we use it

It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem

কিভাবে লারাবেল এপ্লিকেশন এর ডেমো বানাবেন

আমাদের অনেক সময় সফটওয়্যার এর এমন ১ টা ডেমো বনাতে হয় যেখানে কিছু কিছু ফাংশনালিটি বন্ধ করে রাখতে চাই ।

যেমন ধরুন আমাদের ১টা একাউন্টিং সফটওয়্যার আছে যেখানে আমরা ইডিট, ডিলিট একশন অথবা কিছু পেজ ডেমো তে অফ করে রাখতে চাই । ইউসার সেগূলো ভিসিট করতে পারবে বাট একশন করতে পারবেনা ।

এইটার পুরোতন সলুশন আমি কাজে লাগিয়েছিলাম আমাদের একটা এইস আর সফটওয়্যার এ তো সেখানে আমি কন্ট্রোলারে গিয়ে গিয়ে যেই যেই পেজ অথবা একশন গুলো ডেমো তে ডিসেবল থাকবে সেই মেথড গুলো থেকে ১টা এরর মেসেজ দিয়ে আগের পেজ এ আবার রিডাইরেক্ট করে দিতাম ।

এটা ছিলো অনেকটা এমন ধরুন আমাদের ১টা পোস্ট মডিউল আছে আমরা চাই ইউজার পোস্ট ডিলেট করতে না পারুক ক্লিক করার পরে আমরা একটা এরর মেসেজ জেনারেট করে দিবো তো আমি সেখানে এমন করে কোড লিখেছি।

public function destroy($id)

{

// it was a ajax request that’s why i response json

return response()->json(‘status’=>’error’,’message’ =>

‘this function is disabled in demo]’);

// for normal request

session()->flash(‘error,’disabled in demo’);

return redirect()->back();

try{

Post::remove($id);

return response()->json([‘status’=>’success’,’message’=>’Post removed’]);

}

catch(\Exception $e)

{

return $e;

}

}

সব কিছু ঠিক ঠাক কাজ করছে কিন্তু আমার প্রব্লেম টা কোথায় হচ্ছে আইডিয়া করুন তো ?

হুম আশা করি আপনি বুঝতে পারছেন আমার যদি শত শত ফাংশনালিটি এই রকম ডিসেবল করতে হয় তাহলে সব গুলো কন্ট্রোলারে গিয়ে গিয়ে আমাকে এভাবে লিখতে হবে যেটা অনেক সময় এর বেপার ।

তো এটার সমাধান কি তাহলে ?

আমরা একটা Middleware তৈরি করলে কেমন হয় যেটা আমাদের কোন ১টা রাউট যদি ডেমোর জন্যে হয় তাহলে ইউজার কে তার আগের যায়গায় বহাল রেখে ১টা এরর মেসেজ দিয়ে দিবে ? চলুন তৈরি করে নেয়া যাক Middleware টি ।

run this command on artisan console

php artisan make:middleware DemoMiddleware

ইয়ে আমরা Middleware বানাই পেলছি সেটা এখন পাওয়া যাবে

App\Http\Middleware এই নেমস্পেস এ , সেখানে গিয়ে DemoMiddleware টি ওপেন করুন আর handle মেথড এ নিছে র মত করে কোড লিখুন

public function handle($request, Closure $next)

{

if(request()->ajax())

{

return response()->json([‘status’=>’error’,’message’=>’This function is disabled in demo’]);

}

else

{

Session::flash(‘error’,’Opps! This function is disabled in demo’);

return redirect()->back();

}

return $next($request);

}

এখানে আমরা কি করেছি লক্ষ্য করুন কারেন্ট রিকুএস্ট যদি এজাক্স হয় তাহলে ইউজার কে যেসন রেসপন্স করছি যেতা javascript এর মাধ্যমে front end এ ধরেছি । আর যদি এজাক্স মেথড না হয় তাহলে সেসনে এরর ফ্ল্যাশ করে ইউজার কে তার আগের পেজ এ বহাল রেখেছি ।

এবার এই DemoMiddleware কে app\http\Kernel.php ফাইল এর মধ্যে রেজিস্টার করেন নিন routeMiddleware এ নিছের মত ..

protected $routeMiddleware = [

‘auth’ => \App\Http\Middleware\Authenticate::class,

‘permission’ => \App\Http\Middleware\CheckPermission::class,

‘demo’ => \App\Http\Middleware\DemoMiddleware::class,

‘auth.basic’ => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,

‘bindings’ => \Illuminate\Routing\Middleware\SubstituteBindings::class,

‘cache.headers’ => \Illuminate\Http\Middleware\SetCacheHeaders::class,

‘can’ => \Illuminate\Auth\Middleware\Authorize::class,

‘guest’ => \App\Http\Middleware\RedirectIfAuthenticated::class,

‘password.confirm’ => \Illuminate\Auth\Middleware\RequirePassword::class,

‘signed’ => \Illuminate\Routing\Middleware\ValidateSignature::class,

‘throttle’ => \Illuminate\Routing\Middleware\ThrottleRequests::class,

‘verified’ => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,

];

এর পরে আপনি যে রাউট ডিসিবল করতে চান সেখানে demo Middleware টি এপ্লাই করুন

Route::post(‘add-to-cart’,’Cart\CartController@store’)->middleware(‘demo’);

চাইলে আপনি Group করে ও এপ্লাই করতে পারেন ।

এই সমাধান আগেরটার থেকে অনেক কম টাইম consuming এবং কম কোড লিখে করা পসিবল হয়েছে আশা করি ।

What is the purpose of js splice() method

Ok, so we've learned how to remove elements from the beginning and end of arrays using shift() and pop(), but what if we want to remove an element from somewhere in the middle? Or remove more than one element at once? Well, that's where splice() comes in. splice() allows us to do just that: remove any number of consecutive elements from anywhere in an array.

splice() can take up to 3 parameters, but for now, we'll focus on just the first 2. The first two parameters of splice() are integers which represent indexes, or positions, of the array that splice() is being called upon. And remember, arrays are zero-indexed, so to indicate the first element of an array, we would use 0. splice()'s first parameter represents the index on the array from which to begin removing elements, while the second parameter indicates the number of elements to delete. For example:

let array = ['today', 'was', 'not', 'so', 'great'];

array.splice(2, 2);
// remove 2 elements beginning with the 3rd element
// array now equals ['today', 'was', 'great']

splice() not only modifies the array it's being called on, but it also returns a new array containing the value of the removed elements:

let array = ['I', 'am', 'feeling', 'really', 'happy'];

let newArray = array.splice(3, 2);
// newArray equals ['really', 'happy']


so we understand that first parameter in splice method is where to begin and 2nd parameter is where to end the removing an itam
c cool yaa