<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP &#8211; Shuvo The Coder</title>
	<atom:link href="https://shuvothecoder.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://shuvothecoder.com</link>
	<description>Code Your Life</description>
	<lastBuildDate>Sat, 29 Feb 2020 17:53:48 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.4.16</generator>

<image>
	<url>https://shuvothecoder.com/wp-content/uploads/2019/03/cropped-shuvothecoder-32x32.png</url>
	<title>PHP &#8211; Shuvo The Coder</title>
	<link>https://shuvothecoder.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>লারাভেল কাস্টম মিডিলওয়ার তৈরী</title>
		<link>https://shuvothecoder.com/%e0%a6%b2%e0%a6%be%e0%a6%b0%e0%a6%be%e0%a6%ad%e0%a7%87%e0%a6%b2-%e0%a6%95%e0%a6%be%e0%a6%b8%e0%a7%8d%e0%a6%9f%e0%a6%ae-%e0%a6%ae%e0%a6%bf%e0%a6%a1%e0%a6%bf%e0%a6%b2%e0%a6%93%e0%a7%9f%e0%a6%be%e0%a6%b0/</link>
					<comments>https://shuvothecoder.com/%e0%a6%b2%e0%a6%be%e0%a6%b0%e0%a6%be%e0%a6%ad%e0%a7%87%e0%a6%b2-%e0%a6%95%e0%a6%be%e0%a6%b8%e0%a7%8d%e0%a6%9f%e0%a6%ae-%e0%a6%ae%e0%a6%bf%e0%a6%a1%e0%a6%bf%e0%a6%b2%e0%a6%93%e0%a7%9f%e0%a6%be%e0%a6%b0/#respond</comments>
		
		<dc:creator><![CDATA[Shuvo]]></dc:creator>
		<pubDate>Sat, 29 Feb 2020 17:53:44 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Laravel কাস্টম মিডিলওয়ার]]></category>
		<category><![CDATA[কাস্টম মিডিলওয়ার]]></category>
		<guid isPermaLink="false">https://shuvothecoder.com/?p=539</guid>

					<description><![CDATA[<p>আমাদের অনেক প্রয়োজনে লারাভেলে কাস্টম মিডিলওয়ার তৈরি করার দরকার পরে। আমরা চাইলে কোনো থার্ডপার্টি প্লাগিন ব্যবহার না করে সহজেই একটি লারাভেল মিডিলওয়ার তৈরী করে নিতে পারি। তাহলে চলুন দেখা যাক।...</p>
<p>The post <a rel="nofollow" href="https://shuvothecoder.com/%e0%a6%b2%e0%a6%be%e0%a6%b0%e0%a6%be%e0%a6%ad%e0%a7%87%e0%a6%b2-%e0%a6%95%e0%a6%be%e0%a6%b8%e0%a7%8d%e0%a6%9f%e0%a6%ae-%e0%a6%ae%e0%a6%bf%e0%a6%a1%e0%a6%bf%e0%a6%b2%e0%a6%93%e0%a7%9f%e0%a6%be%e0%a6%b0/">লারাভেল কাস্টম মিডিলওয়ার তৈরী</a> appeared first on <a rel="nofollow" href="https://shuvothecoder.com">Shuvo The Coder</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>আমাদের অনেক প্রয়োজনে <a rel="noreferrer noopener" aria-label="লারাভেলে  (opens in a new tab)" href="https://laravel.com/" target="_blank">লারাভেলে </a>কাস্টম মিডিলওয়ার তৈরি করার দরকার পরে।  আমরা চাইলে কোনো থার্ডপার্টি প্লাগিন ব্যবহার না করে সহজেই একটি লারাভেল মিডিলওয়ার তৈরী করে নিতে পারি। তাহলে চলুন দেখা যাক। </p>



<p>প্রথমে নিচের আর্টিসান কমান্ডটি দিয়ে একটি মিডিলওয়ার তৈরী করে নেই।  </p>



<pre class="wp-block-code"><code>php artisan make:middleware CheckRole</code></pre>



<p>এই কমান্ডটি চালানোর পর আমাদের একটি নতুন ক্লাস তৈরী হবে app/Http/Middleware এই ফোল্ডারে। এখন ফাইলটি ওপেন করি। </p>



<pre class="wp-block-code"><code>&lt;?php

namespace App\Http\Middleware;

use Closure;

class CheckRole
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // Perform action

        return $next($request);
    }
}</code></pre>



<p>এখন আমরা এটি একটু পরিবর্তন করে আমাদের ব্যবহার উপযোগী করতে পারি। ধরি আমাদের চেক করা প্রয়োজন যে কোনো ইউজারের কোনো একটি কাজ করার অনুমতি আছে কিনা। তাহলে  লারাভেল  কোডটি হবে নিচের মতো। </p>



<pre class="wp-block-code"><code>&lt;?php

namespace App\Http\Middleware;

use Closure;

class CheckRole
{
    /**
     * Handle the incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string  $role
     * @return mixed
     */
    public function handle($request, Closure $next, $role)
    {
        if (! $request->user()->hasRole($role)) {
            // Redirect...
        }

        return $next($request);
    }

}</code></pre>



<p>যদি ইউজারের রোল না থাকে তবে তাকে রিডাইরেক্ট করে দিবো। এখন প্রশ্ন হবে যে $role আসলো কোথা থেকে ?</p>



<p>আসলে এইটা একটা আর্গুমেন্ট। এটা আমরা পাস্ করবো কন্ট্রোলার থেকে।  চলো তার আগে আমরা আমাদের মিডিলওয়ার রেজিস্টার করে নেই।  রেজিস্টার করার জন্য  app/Http/Kernel.php এই ফাইলটি ওপেন করুন এবং নিচের মতো আমাদের মিডিলওয়ার টি এড করে দেই। </p>



<pre class="wp-block-code"><code>// Within App\Http\Kernel Class...

protected $routeMiddleware = &#91;
    'auth' => \App\Http\Middleware\Authenticate::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,
    'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'checkRole' => \App\Http\Middleware\CheckRole::class,
];</code></pre>



<p>এখন আমরা কন্ট্রোলারে যাই এবং নিচের লাইন যোগ করি। </p>



<pre class="wp-block-code"><code>//At our Controller

public function __construct()
{
    $this->middleware('checkRole:admin');
}</code></pre>



<p>একটু উপরে যে আমরা একটি $role ভ্যারিয়েবল ব্যবহার করেছিলাম ঐটা এখানে checkRole  এর পরে কোলন দিয়ে লিখেছি। এখন সহজেই যেকোনো রোল দিয়ে চেক করা যাবে যে ইউজার ওই রোল এ আছে কিনা। </p>



<p>ধন্যবাদ। </p>



<p><a href="https://shuvothecoder.com/programming-in-smartphone/">স্মার্টফোনে প্রোগ্রামিং কিভাবে করবো?</a></p>
<p>The post <a rel="nofollow" href="https://shuvothecoder.com/%e0%a6%b2%e0%a6%be%e0%a6%b0%e0%a6%be%e0%a6%ad%e0%a7%87%e0%a6%b2-%e0%a6%95%e0%a6%be%e0%a6%b8%e0%a7%8d%e0%a6%9f%e0%a6%ae-%e0%a6%ae%e0%a6%bf%e0%a6%a1%e0%a6%bf%e0%a6%b2%e0%a6%93%e0%a7%9f%e0%a6%be%e0%a6%b0/">লারাভেল কাস্টম মিডিলওয়ার তৈরী</a> appeared first on <a rel="nofollow" href="https://shuvothecoder.com">Shuvo The Coder</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://shuvothecoder.com/%e0%a6%b2%e0%a6%be%e0%a6%b0%e0%a6%be%e0%a6%ad%e0%a7%87%e0%a6%b2-%e0%a6%95%e0%a6%be%e0%a6%b8%e0%a7%8d%e0%a6%9f%e0%a6%ae-%e0%a6%ae%e0%a6%bf%e0%a6%a1%e0%a6%bf%e0%a6%b2%e0%a6%93%e0%a7%9f%e0%a6%be%e0%a6%b0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHP তে সিম্পল LOG তৈরী</title>
		<link>https://shuvothecoder.com/php-%e0%a6%a4%e0%a7%87-%e0%a6%b8%e0%a6%bf%e0%a6%ae%e0%a7%8d%e0%a6%aa%e0%a6%b2-log-%e0%a6%a4%e0%a7%88%e0%a6%b0%e0%a7%80/</link>
					<comments>https://shuvothecoder.com/php-%e0%a6%a4%e0%a7%87-%e0%a6%b8%e0%a6%bf%e0%a6%ae%e0%a7%8d%e0%a6%aa%e0%a6%b2-log-%e0%a6%a4%e0%a7%88%e0%a6%b0%e0%a7%80/#respond</comments>
		
		<dc:creator><![CDATA[Shuvo]]></dc:creator>
		<pubDate>Tue, 29 Oct 2019 17:01:56 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[প্রোগ্রামিং]]></category>
		<guid isPermaLink="false">https://shuvothecoder.com/?p=447</guid>

					<description><![CDATA[<p>আমরা কাজ করার সময় বিভিন্ন কিছুর log রাখতে হয়। যেমন কে কখন কোন কাজ টি করলো কোনো ওয়েবসাইটে বা এপ্লিকেশনে তা আমরা সহজে log ফাইল থেকে দেখতে পারি যদি একটি...</p>
<p>The post <a rel="nofollow" href="https://shuvothecoder.com/php-%e0%a6%a4%e0%a7%87-%e0%a6%b8%e0%a6%bf%e0%a6%ae%e0%a7%8d%e0%a6%aa%e0%a6%b2-log-%e0%a6%a4%e0%a7%88%e0%a6%b0%e0%a7%80/">PHP তে সিম্পল LOG তৈরী</a> appeared first on <a rel="nofollow" href="https://shuvothecoder.com">Shuvo The Coder</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-background has-very-light-gray-background-color">আমরা কাজ করার সময় বিভিন্ন কিছুর <a href="https://www.quora.com/What-is-Logging-in-programming" target="_blank" rel="noreferrer noopener" aria-label="log (opens in a new tab)">log</a> রাখতে হয়। যেমন কে কখন কোন কাজ টি করলো কোনো ওয়েবসাইটে বা এপ্লিকেশনে তা আমরা সহজে log  ফাইল থেকে দেখতে পারি যদি একটি লগ ফাইল তৈরী করা থাকে। </p>



<p><a href="https://www.quora.com/What-is-Logging-in-programming" target="_blank" rel="noreferrer noopener" aria-label="log (opens in a new tab)">log</a> বিভিন্ন ভাবে করা যায়। আপনি চাইলে ডাটাবেসে ও রাখতে পারেন। তবে বেসিকটা একই। </p>



<p>চলুন দেখি তাহলে এই লগ কিভাবে কাজ করবে। </p>



<figure class="wp-block-image"><img src="https://shuvothecoder.com/wp-content/uploads/2019/10/log-700x342.png" alt="" class="wp-image-448" srcset="https://shuvothecoder.com/wp-content/uploads/2019/10/log-700x342.png 700w, https://shuvothecoder.com/wp-content/uploads/2019/10/log-300x147.png 300w, https://shuvothecoder.com/wp-content/uploads/2019/10/log-768x375.png 768w" sizes="(max-width: 700px) 100vw, 700px" /><figcaption>লগ ফাংশন </figcaption></figure>



<p>এইখানে আমরা PHP এর বিল্টইন তিনটি ফাংশন ব্যবহার করেছি। file_exists(), mkdir() এবং file_put_contents(). চলুন দেখি কোনটা কি কাজ করে। </p>



<h2><a href="https://www.w3schools.com/php/func_filesystem_file_exists.asp" target="_blank" rel="noreferrer noopener" aria-label="file_exists()  (opens in a new tab)">file_exists() </a></h2>



<p>file_exists() এই ফাংশন এর মাধ্যমে আমরা চেক করতে পারি যে কোনো ফাইল বা ফোল্ডার তৈরী করা আছে কিনা।  </p>



<h2><a href="https://www.php.net/manual/en/function.mkdir.php" target="_blank" rel="noreferrer noopener" aria-label="mkdir()  (opens in a new tab)">mkdir() </a></h2>



<p>mkdir() এই ফাংশন এর মাধ্যমে আমরা কোনো <a href="https://shuvothecoder.com/file-folder/" target="_blank" rel="noreferrer noopener" aria-label="ফোল্ডার  (opens in a new tab)">ফোল্ডার </a>তৈরি করতে পারি। </p>



<h2><a href="https://www.w3schools.com/php/func_filesystem_file_put_contents.asp" target="_blank" rel="noreferrer noopener" aria-label="file_put_contents()  (opens in a new tab)">file_put_contents() </a></h2>



<p>file_put_contents() এই ফাংশন এর মাধ্যমে আমরা কোনো নতুন <a href="https://shuvothecoder.com/file-folder/" target="_blank" rel="noreferrer noopener" aria-label="ফাইল (opens in a new tab)">ফাইল</a> তৈরী করতে পারি এবং এর মধ্যে লেখা ইনপুট করতে পারি।  </p>



<figure class="wp-block-image"><img src="https://shuvothecoder.com/wp-content/uploads/2019/10/log-700x342.png" alt="" class="wp-image-448" srcset="https://shuvothecoder.com/wp-content/uploads/2019/10/log-700x342.png 700w, https://shuvothecoder.com/wp-content/uploads/2019/10/log-300x147.png 300w, https://shuvothecoder.com/wp-content/uploads/2019/10/log-768x375.png 768w" sizes="(max-width: 700px) 100vw, 700px" /><figcaption>লগ ফাংশন </figcaption></figure>



<p>এখন ভালো করে ফাংশনটি দেখি। আমাদের ফাংশন এর নাম nowlog() এটি একটি প্যারামিটার নেয় যা হতে পারে একটি লেখা বা সংখ্যা।  এই ফাংশন টি কল করলে এটি তিন লাইন আমাদের লগ ফাইলে যোগ করবে। তবে প্রথমে এটি একটি ভ্যারিয়েবল এর মধ্যে লাইন তিনটি সাজাবে।  তারপর চেক করবে যে আমাদের log  নামে কোনো ফোল্ডার আছে কিনা।  যদি না থাকে তাহলে একটি log নামে ফোল্ডার যোগ করবে। তারপর একটি ফাইলের মধ্যে লেখা তিনটি যোগ করবে। ফাইল যদি আগে তৈরী থাকে তাহলে নতুন লেখা গুলো যোগ হবে।  আর যদি ফাইল না থাকে তাহলে ফাইল তৈরী করে লাইন গুলো যোগ করবে।   লাইন তিনটির দেখতে নিচের ছবির মতো হবে। </p>



<figure class="wp-block-image"><img src="https://shuvothecoder.com/wp-content/uploads/2019/10/log1-700x358.png" alt="" class="wp-image-449" srcset="https://shuvothecoder.com/wp-content/uploads/2019/10/log1-700x358.png 700w, https://shuvothecoder.com/wp-content/uploads/2019/10/log1-300x154.png 300w, https://shuvothecoder.com/wp-content/uploads/2019/10/log1-768x393.png 768w, https://shuvothecoder.com/wp-content/uploads/2019/10/log1.png 1884w" sizes="(max-width: 700px) 100vw, 700px" /><figcaption>লগ </figcaption></figure>



<p>অনেক গুলো কাজ হলে নিচের ছবির মতো হবে। </p>



<figure class="wp-block-image"><img src="https://shuvothecoder.com/wp-content/uploads/2019/10/log2-700x599.png" alt="" class="wp-image-450" srcset="https://shuvothecoder.com/wp-content/uploads/2019/10/log2-700x599.png 700w, https://shuvothecoder.com/wp-content/uploads/2019/10/log2-300x257.png 300w, https://shuvothecoder.com/wp-content/uploads/2019/10/log2-768x657.png 768w, https://shuvothecoder.com/wp-content/uploads/2019/10/log2.png 1884w" sizes="(max-width: 700px) 100vw, 700px" /><figcaption>অনেক গুলো লগ</figcaption></figure>



<p>পুনশ্চ : PHP_EOL একটি কনস্ট্যান্ট ভ্যারিয়েবল। এটি নতুন লাইন যোগ করতে ব্যবহৃত হয়। </p>
<p>The post <a rel="nofollow" href="https://shuvothecoder.com/php-%e0%a6%a4%e0%a7%87-%e0%a6%b8%e0%a6%bf%e0%a6%ae%e0%a7%8d%e0%a6%aa%e0%a6%b2-log-%e0%a6%a4%e0%a7%88%e0%a6%b0%e0%a7%80/">PHP তে সিম্পল LOG তৈরী</a> appeared first on <a rel="nofollow" href="https://shuvothecoder.com">Shuvo The Coder</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://shuvothecoder.com/php-%e0%a6%a4%e0%a7%87-%e0%a6%b8%e0%a6%bf%e0%a6%ae%e0%a7%8d%e0%a6%aa%e0%a6%b2-log-%e0%a6%a4%e0%a7%88%e0%a6%b0%e0%a7%80/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
