Öz Laravel Paketinizi necə qurmaq olar - Fəsil 1

Şəkil mənbəyi: http://culttt.com

Salam proqramçı, ümumiyyətlə packagistdə bir neçə Laravel kitabxanası tapırsınız? Məsələn, məlumatlarınızı Excel formatına ixrac etmək istəsəniz, packagistdə axtarış edə bilərsiniz və istifadə etmək üçün bu ecazkar paketi tapacaqsınız.

Şaşırtıcı bir şəkildə, öz Laravel paketimizi / kitabxanamızı yarada və github və ya hətta packagist-də yayımlaya bilərik ki, paketiniz başqaları üçün aşkar olsun. Bunu bir neçə fəsildə izah edəcəyəm və bu ilk fəsildə sadə Laravel paketimizi hazırlayacağıq.

Sadə bir valyuta formatlaşdırma paketi yaradacağıq. Paket göstərilən valyuta ilə nömrəni formatlanmış bir rəqəm şəklində formatlaşdırır. Bu hələ uzun bir yol kimi görünür, ona görə də bu fəsildə əsas xidmət təminatçısı, marşrut, nəzarətçi və paket yaratmaq üçün funksiyaları nəzərdən keçirəcəyəm.

Laravel quraşdırın

Bu seriyada paketləri inkişaf etdirmək üçün Laravel 5.5-dən istifadə edəcəyik. Buna görə serverinizin ehtiyaclarının ödənildiyindən əmin olun.

Yalnız quraşdırma təlimatlarına əməl edin və biz hazırıq.

Paket kataloqu yaradın

Qurulmuş paketlərimizin istehsalçı qovluğunda olduğunu və bunun varsayılan olaraq nəzərə alınmadığını bilirik. Hər hansı bir kodu birbaşa provayder qovluğundan dəyişdirməyimizə icazə verilmir.

Beləliklə, bu quruluşla Laravel kök qovluğundan bir qovluq yarataq:

tətbiq / paketlər / provayder adı / paket adı / src

İndi qovluğumuz belə ola bilər:

Valyuta formatlayıcı qovluq quruluşu

Paketlər: Paket təminatçıları yerləşdirmək üçün qovluq.

teknomuslim: provayderin adı
Valyuta formatlaşdırıcısı: paketin adı
src: paketimizin kodlarını yerləşdirmək üçün qovluq.

Gördüyünüz kimi, qovluq adını lazım olduqda dəyişdirə bilərsiniz.

Bəstəkarın təşəbbüsü

Paketimizi daha sonra Laravel-də provayder kimi quraşdırmaq üçün Bəstəkarla başlamalıyıq. Narahat olmayın, Bəstəkar bəstəkar.json faylını yaratmaq üçün daxili əmrdən istifadə edə bilər.

Paket adı qovluğumuza getmək üçün terminaldan istifadə edin. Bu fəsildə paketlər / teknomuslim / currencyformatter tapa bilərsiniz. Aşağıdakı əmri işə salın:

Bəstəkar təşəbbüsü

Bəstəkarın təlimatlarına əməl edin. Necə cavab verəcəyinizi bilmirsinizsə, yalnız standart cavabdan istifadə etmək üçün enter düyməsini vurun. Daha sonra birbaşa yaratdığınız bəstəkar.json-a dəyişə bilərsiniz.

İndi bəstəkarımız.json var

{"ad": "teknomuslim / currency-formatter", "description": "sadə valyuta nömrəsi formatlaşdırıcısı", "müəlliflər": [{"name": "Didik Tri Susanto", "email": "[email protected] "}]," Minimum stabillik ":" dev "," need ": {}}

Əla, indi proqramlaşdıra bilərik!

Xidmət təminatçını müəyyənləşdirin

Xidmət təminatçını təyin etməzdən əvvəl paketimizi yükləməliyik. Paketimiz PSR-4 autoloader tətbiq etməkdir. Beləliklə, paket ad sahəmizi laravel's composer.json faylında müəyyənləşdirməliyik

Avtomatik yükləmə bölməsində paketimiz üçün psr-4 qurun.

"autoload": {"classmap": ["Database / Seeds", "Database / Fabrics"], "psr-4": {"App \\": "app /", "Teknomuslim \\ CurrencyFormatter \\": "packages / teknomuslim / currencyformatter / src"}},

Sonra bəstəkar əmrindən istifadə edərək paketimizi aşağıdakı kimi yükləməyimiz lazımdır:

bəstəkar dump-autoload

Əla, paketimiz artıq Laravel-də avtomatik olaraq yüklənir. Paketimiz üçün bir xidmət təminatçısı edək. Yalnızca src qovluğunda bir CurrencyFormatterServiceProvider.php sinfi yaradın. Ad məkanını əvvəllər yaratdığınız provayderə əsaslanaraq istifadə etməyi unutmayın.

Bəli, bu boş bir xidmət təminatçısıdır. Daha sonra daha çox funksionallıq əlavə etmək üçün bunu kodlayacağıq. Boot () metodu marşrutlar, hadisə dinləyiciləri və ya digər funksiyalar kimi paket funksiyalarını yükləmək üçün istifadə olunur. Register () metodu tətbiq konteynerinə sinifləri və ya funksiyaları inteqrasiya etmək üçün istifadə olunur.

Bundan sonra, provayder massivində config / app.php-ə bağlama xidmət təminatçını əlavə etməliyik.

/ * * Bağlama xidmət təminatçısı ... * / Teknomuslim \ CurrencyFormatter \ CurrencyFormatterServiceProvider :: sinif,

Marşrutu, nəzarətçini və görünüşləri təyin edin

Bəli, indi bir paketimiz var! Təəssüf ki, hələ heç bir işimiz yoxdur. Tamam, brauzerimizlə daxil ola bilmək üçün paketimizdə route.php yaradaq.

Sonra marşrutumuzu əvvəllər yaratdığımız xidmət təminatçının boot () metoduna yükləməliyik.

public function boot () {$ this-> loadRoutesFrom (__ DIR __. '/ route.php'); }

İndi Laravelinizi də özünüzlə götürün

PHP sənətkarları xidmət göstərir

və http: // localhost: 8000 / təbrik ünvanına getmək üçün brauzerinizi istifadə edin. "Salam, bu sənin əla paketin!" Deməlidirlər. Çıxış kimi baxın.

Bağlama yolunun çıxışı

Fikrimcə, kodumuzu birbaşa marşrut sənədinə yapışdırmaq ən yaxşı təcrübə deyil. Şirkəti modullaşdırmaq və ayırmaq istədiyimiz üçün işləkliyimiz üçün məntiq yaratmaq üçün bir nəzarət faylı yarada bilərik.

Yalnızca src qovluğunda bir nəzarətçi faylı yaradın və ya bir nəzarətçi qovluğu yaradın və içərisinə nəzarətçi faylları yerləşdirin. İndi CurrencyFormatterController.php yaradacağıq və sonra nəticəni əvvəllər göstərildiyi kimi göstərmək üçün təbrik () funksiyası yaradacağıq.

Sonra, nəzarətçimizi bağlama xidmət təminatçına qeyd edin.

/ ** * Tətbiq xidmətlərini qeydiyyatdan keçirin. * * @return void * / public function register () {$ this-> app-> make ('Teknomuslim \ CurrencyFormatter \ Controllers \ CurrencyFormatterController'); }

Bağlama funksiyası əvəzinə idarəetmədən istifadə etmək üçün marşrutumuzu dəyişdirin.

Route :: get ('Salamlaşma', 'Teknomuslim \ CurrencyFormatter \ Controllers \ CurrencyFormatterController @ Greeting');

Yenidən brauzerinizə gedin və əvvəlki nəticəni görməlisiniz.

Baxış nədir? Bir simli qaytarmaq əvəzinə bir bıçaq şablonundan istifadə edə bilərikmi? Bəli, bir paket baxışları yükləyə bilər. Bunu etmək üçün src qovluğunda Views qovluğu yaradır və boot () metoduna yükləyirik.

/ ** * Tətbiq xidmətləri açılış qayışı. * * @return void * / public function boot () {$ this-> loadRoutesFrom (__ DIR __. '/ route.php'); $ this-> loadViewsFrom (__ DIR __. '/ views', 'CurrencyFormatter'); }

LoadViewsFrom () metodundakı ikinci arqument, görünüşünüz üçün ad boşluğudur. Bu, vacibdir, çünki fikirləri digər paketlərdən ayırmaq lazımdır.

Sonra, salamlama nəticəsini yenidən yaratmaq üçün greeting.blade.php faylını yaradın. İndi fərqli bir təbrik ifadəsi istifadə etməyə çalışın.

Teknomuslim </ title> </ head> <body> <h1 style = "text-align: center"> <span style = "font-weight: normal"> Bu valyuta formatlaşdırma paketidir </ span> </ h1> </ gövdə> </ html></pre><p>Demək olar ki, bitdi, indi görünüşü salamlama () metodunda nəzarətçidə çağırın.</p><pre>/ ** * @return \ Illuminate \ Contracts \ View \ Factory | \ Illuminate \ View \ View * / ictimai tədbirlərdə təbrik () {return view ('CurrencyFormatter :: təbrik'); }</pre><p>Brauzerə gedin və yeniləyin.</p><img alt="baxımdan gözəl html səhifəsi" src="https://imgstore.nyc3.cdn.digitaloceanspaces.com/ceadesc/1571885994956.png" /><h4>Fantastik paketinizi göstərin!</h4><p>Artıq öz paketimizi qurmuşuq. İndi Github üzərindəki böyük işimizi göstərin ki, digər proqramçılar ehtiyaclarımızı nəzərə alaraq paketimizi öyrənə və ya istifadə edə bilsinlər. Başqalarının kodundan öyrənməyimizin bir neçə yaxşı səbəbi var.</p><p>Yalnızca src qovluğunu Github deposuna sürüşdürün. .İdea / vendor və s. Kimi paylaşılan fayllar / qovluqlar etmək istəmədiyimiz üçün .gitignore yaratmağı unutmayın.</p><p>Bu seriya üçün Laravel paketimin tərəqqisi.</p><h4>Xülasə</h4><p>Beləliklə, sadə bir Laravel paketi yaratdıq və paketimizdə marşrut, nəzarətçi və görüntüdən necə istifadə edəcəyimizi öyrənirik. Növbəti seriyada daha çox funksiya ilə məşğul olacağıq və bunları packagist-də də dərc edəcəyik.</p><p>Oxuduğunuz üçün təşəkkürlər. Ümid edirəm ki, bu seriya Laravel çərçivəsinin başqa bir böyük hissəsini tapmaqda kömək edir.</p><p>İstinadlar:</p><ul><li>https://laravel.com/docs/5.5/packages</li><li>https://devdojo.com/blog/tutorials/how-to-create-a-laravel-package</li></ul><p>İnsanlar kodlama ilə əylənin!</p></div><div class="neighbor-articles"><h4 class="ui header">Həmçinin bax</h4><a href="/question/how-to-hack-pandora/" title="pandora hack necə">pandora hack necə</a><a href="/question/how-to-use-humility-in-a-sentence/" title="bir cümlədə təvazökarlıqdan necə istifadə etmək">bir cümlədə təvazökarlıqdan necə istifadə etmək</a><a href="/question/how-to-delete-os-from-hard-drive/" title="OS-ni sabit diskdən necə silmək olar">OS-ni sabit diskdən necə silmək olar</a><a href="/question/how-to-turn-c-into-watts/" title="c-ni vata necə çevirmək olar">c-ni vata necə çevirmək olar</a><a href="/question/how-to-attract-dust-particles/" title="toz hissəciklərini necə cəlb etmək">toz hissəciklərini necə cəlb etmək</a><a href="/question/how-to-turn-off-auto-format-in-google-docs/" title="Google sənədlərində avtomatik formatı necə söndürmək olar">Google sənədlərində avtomatik formatı necə söndürmək olar</a><a href="/question/how-to-get-into-ucla-as-a-transfer/" title="bir transfer olaraq ucla'ya necə girmək olar">bir transfer olaraq ucla'ya necə girmək olar</a><a href="/question/how-to-make-a-creepy-doll/" title="ürpertici bir kukla necə ediləcək">ürpertici bir kukla necə ediləcək</a></div></div><div class="article-sidebar"><div class="neighbor-articles"><h4 class="ui header">Həmçinin bax</h4><a href="/article/how-to-get-out-of-the-rejection-downward-spiral-in-your-tech-job-search-c4c737/" title="Texniki iş axtarışınızdakı aşağı rədd spiralini necə aradan qaldırmaq olar">Texniki iş axtarışınızdakı aşağı rədd spiralini necə aradan qaldırmaq olar</a><a href="/article/how-to-grow-your-writing-with-a-mentor-7898b2/" title="Mentorla Yazınızı necə genişləndirmək olar">Mentorla Yazınızı necə genişləndirmək olar</a><a href="/article/how-to-implement-a-pwa-and-barba-js-into-internet-kiosks-aa4a2e/" title="İnternet köşklərində bir PWA və Barba.js necə tətbiq edilir">İnternet köşklərində bir PWA və Barba.js necə tətbiq edilir</a><a href="/article/how-to-make-a-super-fast-static-site-with-gatsby-typescript-and-sass-3fd72b/" title="Gatsby, Typescript və SASS istifadə edərək super sürətli statik sayt necə yaradılır">Gatsby, Typescript və SASS istifadə edərək super sürətli statik sayt necə yaradılır</a><a href="/article/how-to-fight-poverty-an-interview-with-meike-van-ginneken-ceo-of-snv-b92e91/" title="Yoxsulluqla necə mübarizə aparılır: SNV-nin baş icraçı direktoru Meike van Ginneken ilə reportaj">Yoxsulluqla necə mübarizə aparılır: SNV-nin baş icraçı direktoru Meike van Ginneken ilə reportaj</a><a href="/article/how-to-onboard-yourself-to-a-dao-af527e/" title="Bir DAO-ya necə qoşulmaq olar">Bir DAO-ya necə qoşulmaq olar</a><a href="/article/how-to-participate-in-gooreo-sales-b2ed4e/" title="GOOREO SATIŞINDA İŞTİRAK">GOOREO SATIŞINDA İŞTİRAK</a><a href="/article/frank-harris-how-to-create-clarity-from-ambiguity-3da78b/" title="Frank Harris: Qeyri-müəyyənlikdən necə aydınlıq əldə etmək olar">Frank Harris: Qeyri-müəyyənlikdən necə aydınlıq əldə etmək olar</a></div></div></div></main><div class="push"></div></div><footer><div class="flags-footer"><a href="https://uz.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="uz flag"></i></a><a href="https://bg.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="bg flag"></i></a><a href="https://et.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ee flag"></i></a><a href="https://lt.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="lt flag"></i></a><a href="https://lv.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="lv flag"></i></a><a href="https://sr.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="rs flag"></i></a><a href="https://sl.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="si flag"></i></a><a href="https://sk.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="sk flag"></i></a><a href="https://uk.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ua flag"></i></a><a href="https://sq.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="al flag"></i></a><a href="https://hy.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="am flag"></i></a><a href="https://is.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="is flag"></i></a><a href="https://kk.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="kz flag"></i></a><a href="https://fa.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ir flag"></i></a><a href="https://tg.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="tj flag"></i></a><a href="https://ga.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ie flag"></i></a><a href="https://be.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="by flag"></i></a><a href="https://ka.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ge flag"></i></a><a href="https://ky.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="kg flag"></i></a><a href="https://lb.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="lu flag"></i></a><a href="https://lo.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="la flag"></i></a><a href="https://ar.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="sa flag"></i></a><a href="https://bn.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="in flag"></i></a><a href="https://ca.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="es flag"></i></a><a href="https://zh.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="cn flag"></i></a><a href="https://hr.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="hr flag"></i></a><a href="https://cs.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="cz flag"></i></a><a href="https://da.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="dk flag"></i></a><a href="https://nl.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="nl flag"></i></a><a href="https://tl.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ph flag"></i></a><a href="https://fi.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="fi flag"></i></a><a href="https://fr.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="fr flag"></i></a><a href="https://de.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="de flag"></i></a><a href="https://el.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="gr flag"></i></a><a href="https://iw.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="il flag"></i></a><a href="https://hi.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="in flag"></i></a><a href="https://hu.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="hu flag"></i></a><a href="https://id.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="id flag"></i></a><a href="https://it.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="it flag"></i></a><a href="https://ja.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="jp flag"></i></a><a href="https://ko.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="kr flag"></i></a><a href="https://ms.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="my flag"></i></a><a href="https://mr.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="io flag"></i></a><a href="https://no.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="no flag"></i></a><a href="https://pl.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="pl flag"></i></a><a href="https://pt.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="pt flag"></i></a><a href="https://ro.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ro flag"></i></a><a href="https://ru.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ru flag"></i></a><a href="https://internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="es flag"></i></a><a href="https://sv.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="ch flag"></i></a><a href="https://ta.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="sg flag"></i></a><a href="https://te.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="in flag"></i></a><a href="https://th.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="th flag"></i></a><a href="https://tr.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="tr flag"></i></a><a href="https://ur.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="pk flag"></i></a><a href="https://vi.internautasporlapaz.org/article/how-to-build-your-own-laravel-package-chapter-1-79d79b/"><i class="vn flag"></i></a></div>internautasporlapaz.org<!-- --> © <!-- -->2021<!-- --> </footer></div></div></div></body></html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>