কীভাবে আপনার নিজের ল্যারাভেল প্যাকেজ তৈরি করবেন - অধ্যায় 1

হ্যালো প্রোগ্রামার, আপনি সাধারণত প্যাকেজিস্টে কিছু লারাভেল লাইব্রেরি পাবেন? উদাহরণস্বরূপ, আপনি যদি এক্সেল ফর্ম্যাটে আপনার ডেটা রফতানি করতে চান তবে আপনি এটির মাধ্যমে প্যাকেজিস্ট অনুসন্ধান করতে পারেন এবং আপনি এই আশ্চর্যজনক প্যাকেজটি ব্যবহার করতে পারেন।
আশ্চর্যজনকভাবে, আমরা আমাদের নিজস্ব লারাভেল প্যাকেজ / গ্রন্থাগার তৈরি করতে পারি এবং এটি গিথুব বা এমনকি প্যাকেজিস্টে প্রকাশ করতে পারি যাতে আপনার প্যাকেজটি অন্যদের জন্য আবিষ্কারযোগ্য হয়। আমি এটি কয়েকটি অধ্যায়ে আবরণ করব এবং এই প্রথম অধ্যায়ে আমরা আমাদের সহজ লারাভেল প্যাকেজটি তৈরি করব build
আমরা একটি সাধারণ মুদ্রা বিন্যাস প্যাকেজ তৈরি করতে যাচ্ছি। প্যাকেজটি নির্দিষ্ট মুদ্রার সাহায্যে একটি সংখ্যাকে বিন্যাসিত সংখ্যায় ফর্ম্যাট করে। এটি যেতে অনেক দীর্ঘ পথ বলে মনে হচ্ছে, সুতরাং এই অধ্যায়ে আমি বেসিক পরিষেবা প্রদানকারী, রুট, নিয়ামক, এবং একটি প্যাকেজ তৈরির জন্য ফাংশনগুলি coverাকতে যাচ্ছি।
লারাভেল ইনস্টল করুন
এই সিরিজে আমরা প্যাকেজ বিকাশ করতে লারাভেল 5.5 ব্যবহার করব। সুতরাং আপনার সার্ভারের প্রয়োজনীয়তা পূরণ হয়েছে তা নিশ্চিত করুন।
কেবল ইনস্টলেশন নির্দেশাবলী অনুসরণ করুন এবং আমরা যেতে ভাল।
প্যাকেজ ডিরেক্টরি তৈরি করুন
আমরা জানি যে আমাদের ইনস্টল করা প্যাকেজগুলি প্রস্তুতকারকের ডিরেক্টরিতে রয়েছে এবং এটি ডিফল্টরূপে উপেক্ষা করা হয়। আমাদের সরবরাহকারীর ডিরেক্টরি থেকে সরাসরি কোনও কোড পরিবর্তন করার অনুমতি নেই।
সুতরাং আসুন এই কাঠামোর সাহায্যে লারাভেল রুট ডিরেক্টরি থেকে একটি ফোল্ডার তৈরি করুন:
অ্যাপ্লিকেশন / প্যাকেজগুলি / সরবরাহকারীর নাম / প্যাকেজের নাম / এসসিআর
এখন আমাদের ফোল্ডারটি এর মতো দেখতে পেল:

প্যাকেজগুলি: প্যাকেজ সরবরাহকারী স্থাপনের জন্য ফোল্ডার।
teknomuslim: সরবরাহকারীর নাম
মুদ্রার বিন্যাসক: প্যাকেজের নাম
src: আমাদের প্যাকেজের কোডগুলি রাখতে ফোল্ডার।
আপনি দেখতে পাচ্ছেন, আপনি প্রয়োজন মতো ফোল্ডারের নাম পরিবর্তন করতে পারেন।
সুরকারের দীক্ষা
আমাদের প্যাকেজটি সুরকারের সাথে শুরু করতে হবে যাতে আপনার প্যাকেজটি পরে আপনার লারাভেলে সরবরাহকারীর হিসাবে ইনস্টল করা যায়। চিন্তিত হবেন না, সুরকার কম্পোজারজেসন ফাইলটি তৈরি করতে বিল্ট-ইন কমান্ডটি ব্যবহার করতে পারেন।
আমাদের প্যাকেজ নাম ফোল্ডারে নেভিগেট করতে টার্মিনালটি ব্যবহার করুন। এই অধ্যায়ে আপনি প্যাকেজ / টেকনোমস্লিম / মুদ্রা ফর্ম্যাটার পাবেন। নিম্নলিখিত কমান্ড চালান:
সুরকার ইনি
সুরকারের নির্দেশাবলী অনুসরণ করুন। আপনি যদি উত্তর দিতে না জানেন তবে ডিফল্ট উত্তরটি ব্যবহার করতে কেবল এন্টার টিপুন। আপনি এটির পরে আপনার উত্পন্ন কমপোজার জসনে সরাসরি পরিবর্তন করতে পারেন।
এখন আমরা আমাদের রচয়িতা। জসন
name "নাম": "টেকনোমস্লিম / মুদ্রা-বিন্যাসক", "বিবরণ": "সাধারণ মুদ্রার নম্বর বিন্যাসক", "লেখক": [{"নাম": "দিদিক ত্রি সুস্যান্তো", "ইমেল": "[email protected] "}]," ন্যূনতম স্থায়িত্ব ":" দেব "," প্রয়োজন ": {}}
দুর্দান্ত, এখন আমরা প্রোগ্রাম করতে পারি!
পরিষেবা সরবরাহকারীর সংজ্ঞা দিন
আমরা পরিষেবা সরবরাহকারীর সংজ্ঞা দেওয়ার আগে আমাদের প্যাকেজটি লোড করা দরকার। আমাদের প্যাকেজটি হল পিএসআর -4 অটোলোডার কার্যকর করা। অতএব আমাদের ল্যারাভেলের কম্পোজার.জেসন ফাইলটিতে আমাদের প্যাকেজ নেমস্পেসটি সংজ্ঞায়িত করতে হবে
স্বতঃ লোড বিভাগে, আমাদের প্যাকেজটির জন্য পিএসআর -4 সেট আপ করুন।
"অটোল্যাড": class "শ্রেণিবদ্ধ": ["ডাটাবেস / বীজ", "ডাটাবেস / কারখানাগুলি"], "পিএসআর -4": {"অ্যাপ \\": "অ্যাপ্লিকেশন /", "টেকনোমস্লিম \\ কারেন্সি ফরম্যাটার \\": "প্যাকেজ / টেকনোমস্লিম / কারেন্সি ফর্ম্যাটার / এসসিআর"}},
তারপরে আমাদের সুরকার কমান্ডটি ব্যবহার করে আমাদের প্যাকেজটি স্বয়ংক্রিয়ভাবে লোড করা দরকার:
সুরকার ডাম্প-অটোল্যাড
দুর্দান্ত, ইতিমধ্যে আমাদের প্যাকেজটি লারাভেলে স্বয়ংক্রিয়ভাবে লোড হয়েছে। আসুন আমাদের প্যাকেজটির জন্য একটি পরিষেবা সরবরাহকারী তৈরি করুন। এসসিআর ফোল্ডারে কেবল একটি মুদ্রা ফোর্মেটারসেবাপ্রভাইডার.এফপি ক্লাস তৈরি করুন। আপনি আগে তৈরির সরবরাহকারীর উপর ভিত্তি করে নেমস্পেসটি ব্যবহার করতে ভুলবেন না।
php Namespace Teknomuslim \ CurrencyFormatter; Verwenden Sie Illuminate \ Support \ ServiceProvider. Die Klasse CurrencyFormatterServiceProvider erweitert ServiceProvider { / ** * Bootstrap der Anwendungsdienste. * * @return void * / public function boot () { } / ** * Registrieren Sie die Anwendungsdienste. * * @return void * / öffentliches Funktionsregister () { } }
হ্যাঁ, এটি খালি পরিষেবা সরবরাহকারী। আমরা পরে কোডটি করব যাতে আরও কার্যকারিতা যুক্ত হয়। বুট () পদ্ধতিটি প্যাকেজ ফাংশন যেমন রুট, ইভেন্ট শ্রোতা বা অন্যান্য ফাংশন বুট করতে ব্যবহৃত হয়। রেজিস্টার () পদ্ধতিটি অ্যাপ্লিকেশন ধারকটিতে ক্লাস বা ফাংশন সংহত করতে ব্যবহৃত হয়।
পরবর্তী আমাদের সরবরাহকারীর অ্যারেতে কনফিগার / অ্যাপ.এফপি করতে পার্সেল পরিষেবা সরবরাহকারী যুক্ত করতে হবে।
/ * * পার্সেল পরিষেবা সরবরাহকারী ... * / টেকনোমস্লিম \ কারেন্সি ফরম্যাটার \ কারেন্সি ফরম্যাটারসেবাপ্রাইভাইডার :: শ্রেণি,
রুট, নিয়ামক এবং দর্শন সংজ্ঞায়িত করুন
হ্যাঁ, আমাদের এখন একটি প্যাকেজ আছে! দুর্ভাগ্যক্রমে আমাদের এখনও কোনও কার্যকারিতা নেই। ঠিক আছে, আসুন আমরা আমাদের প্যাকেজটিতে একটি রুটস.এফপি তৈরি করি যাতে আমরা এটি আমাদের ব্রাউজারের মাধ্যমে অ্যাক্সেস করতে পারি।
php Route :: get ('Gruß', function () { return 'Hallo, das ist dein tolles Paket!'; });
তারপরে আমাদের পূর্বে তৈরি পরিষেবা সরবরাহকারীর বুট () পদ্ধতিতে আমাদের রুটটি লোড করা দরকার।
পাবলিক ফাংশন বুট () {$ this-> loadRoutesFrom (__ DIR __। '/ways.php'); }
এবার আপনার লারাভেলকে সাথে রাখুন
পিএইচপি কারিগররা পরিবেশন করেন
এবং আপনার ব্রাউজারটি http: // লোকালহোস্ট: 8000 / অভিবাদন নেভিগেট করতে ব্যবহার করুন। তাদের বলা উচিত "হ্যালো, এটি আপনার দুর্দান্ত প্যাকেজ!" আউটপুট হিসাবে দেখুন।

আমার মতে, সরাসরি আমাদের কোডটি রুট ফাইলে আটকানো সেরা অনুশীলন নয়। যেহেতু আমরা সংস্থাকে মডুলারাইজ এবং আলাদা করতে চাই, আমরা আমাদের কার্যকারিতার জন্য যুক্তি তৈরি করতে একটি নিয়ন্ত্রণ ফাইল তৈরি করতে পারি।
কেবলমাত্র এসআরসি ফোল্ডারে একটি নিয়ন্ত্রণকারী ফাইল তৈরি করুন বা একটি নিয়ামক ফোল্ডার তৈরি করুন এবং এতে কন্ট্রোলার ফাইল রাখুন। এখন আমরা কারেন্সি ফোর্মেটারকন্ট্রোলআরএফপি তৈরি করব এবং তারপরে পূর্বে বর্ণিত হিসাবে আউটপুট প্রদর্শন করার জন্য একটি গ্রিটিং () ফাংশন তৈরি করব।
php Namespace Teknomuslim \ CurrencyFormatter \ Controllers; Verwenden Sie App \ Http \ Controllers \ Controller. Klasse CurrencyFormatterController erweitert Controller { / ** * @return \ Illuminate \ Contracts \ View \ Factory | \ Illuminate \ View \ View * / Begrüßung bei öffentlichen Veranstaltungen () { return 'Hallo, das ist dein tolles Paket!'; } }
এর পরে, আমাদের নিয়ামকটিকে পার্সেল পরিষেবা সরবরাহকারীর সাথে নিবন্ধ করুন।
/ ** * অ্যাপ্লিকেশন পরিষেবাগুলি নিবন্ধ করুন। * * @ পুনর্বার শূন্য * / পাবলিক ফাংশন রেজিস্টার () {$ this-> অ্যাপ-> মেক করুন ('টেকনোমস্লিম \ কারেন্সি ফরম্যাটার \ কন্ট্রোলারস For কারেন্সি ফরম্যাটারকন্ট্রোলার'); }
ক্লোজিং ফাংশনের পরিবর্তে নিয়ন্ত্রণগুলি ব্যবহার করতে আমাদের রুট পরিবর্তন করুন।
রুট :: পান ('গ্রিটিং', 'টেকনোমস্লিম \ কারেন্সি ফরম্যাটার \ কন্ট্রোলারস \ কারেন্সি ফরম্যাটকন্ট্রোলার @ গ্রিটিং');
আপনার ব্রাউজারে আবার নেভিগেট করুন এবং আপনার আগের মতো একই আউটপুট দেখতে হবে।
কীভাবে দেখুন? আমরা স্ট্রিং ফেরার পরিবর্তে একটি ফলক টেম্পলেট ব্যবহার করতে পারি? হ্যাঁ, একটি প্যাকেজ ভিউ লোড করতে পারে। এটি করার জন্য, আমরা এসআরসি ফোল্ডারে একটি ভিউ ফোল্ডার তৈরি করি এবং এটি বুট () পদ্ধতিতে লোড করি।
/ ** * অ্যাপ্লিকেশন পরিষেবাদি বুটস্ট্র্যাপ। * * @ পুনর্বার শূন্য * / পাবলিক ফাংশন বুট () {$ এটি-> লোডরউটসফ্রোম (__ ডিআইআর __। '/ রুটস.এফপি'); $ এটি-> লোডভিউসফ্রোম (__ ডিআইআর __। '/ দর্শন', 'মুদ্রা ফর্ম্যাটটার'); }
লোডভিউসফ্রোম () পদ্ধতির দ্বিতীয় যুক্তিটি আপনার দর্শনটির একটি নেমস্পেস। এটি প্রয়োজনীয় কারণ আমাদের অন্যান্য প্যাকেজগুলির থেকে দৃষ্টিভঙ্গি আলাদা করতে হবে।
এরপরে, গ্রিটিং আউটপুটটি পুনরায় তৈরি করতে ग्रीटिंग.ব্লেড.এফপি ফাইল তৈরি করুন। এখন ভিন্ন একটি শুভেচ্ছা বাক্য ব্যবহার করার চেষ্টা করুন।
টেকনোমস্লিম শিরোনাম মাথা> <স্প্যান শৈলী = "ফন্ট-ওজন: সাধারণ"> এটি একটি মুদ্রার বিন্যাস প্যাকেজ span> h1> বডি> html>
প্রায় সম্পন্ন হয়ে গেছে, এখন নিয়ামককে অভিবাদন () পদ্ধতিতে ভিউ কল করুন।
/ ** * @ পুনর্বার \ আলোকসজ্জা \ চুক্তি \ দেখুন \ কারখানা | Um আলোকসজ্জা করুন \ দেখুন public সর্বজনীন ইভেন্টে (দেখুন) / অভিবাদন () {রিটার্ন ভিউ ('কারেন্সি ফরম্যাটার :: গ্রিটিং'); }
ব্রাউজারে নেভিগেট করুন এবং এটি আপডেট করুন।

আপনার দুর্দান্ত প্যাকেজটি দেখান!
আমরা ইতিমধ্যে আমাদের নিজস্ব প্যাকেজ তৈরি করেছি। এখন গিথুব এ আমাদের দুর্দান্ত কাজটি দেখান যাতে অন্যান্য প্রোগ্রামাররা তাদের প্রয়োজন অনুযায়ী আমাদের প্যাকেজটি শিখতে বা ব্যবহার করতে পারে। আমাদের অন্যান্য লোকের কোড থেকে আমাদের শেখার প্রয়োজনীয় বিভিন্ন কারণ রয়েছে।
গিথুব সংগ্রহস্থলে সিসিআরডি ফোল্ডারটি স্লাইড করুন। আমরা যেমন শেয়ার্ড ফাইল / ফোল্ডার যেমন .idea / বিক্রেতা ইত্যাদি প্রতিশ্রুতিবদ্ধ করতে চাই না। Gitignore তৈরি করতে ভুলবেন না
এই সিরিজের জন্য আমার লারাভেল প্যাকেজের অগ্রগতি এখানে।
সারসংক্ষেপ
সুতরাং আমরা একটি সাধারণ লারাভেল প্যাকেজ তৈরি করেছি এবং আমরা আমাদের প্যাকেজে রুট, নিয়ামক এবং কীভাবে ব্যবহার করব তা শিখছি। পরবর্তী সিরিজে আমরা আরও ফাংশন নিয়ে কাজ করব এবং সেগুলি প্যাকেজিস্টে প্রকাশ করব।
পড়ার জন্য ধন্যবাদ. আমি আশা করি এই সিরিজটি আপনাকে লারাভেল কাঠামোর আরও একটি দুর্দান্ত অংশ আবিষ্কার করতে সহায়তা করে।
তথ্যসূত্র:
- https://laravel.com/docs/5.5/packages
- https://devdojo.com/blog/tutorials/how-to-create-a-laravel-package
লোকদের কোডিং মজা করুন!