SlideShare a Scribd company logo
1 of 16
EloquentSequence
- Historia pewnej biblioteki
Open Source
Adam Matysiak
CTO / Team Leader
adam@highsolutions.pl
#1 - Potrzeba
● Pojawiła się potrzeba zarządzania kolejnością rekordów w bazie danych
● Rozwiązanie:
○ Stworzenie atrybutu w modelu (nazwa seq), który przechowuje kolejność
○ Automatyczne ustalanie wartości, gdy obiekt jest zapisany do bazy
danych
○ Proste metody przenieś w górę/dół
● Dodatkowe wymagania:
○ Gdy obiekt jest usuwany, atrybut seq powinien być zaktualizowany dla
pozostałych
○ Dodanie obsługi dla podzbiorów, np. gdy chcemy pamiętać kolejność dla
grup obiektów oddzielnie (np. page_id, user_id itp.)
#2 - Potrzeba się powtarza
● Kolejny projekt potrzebuje tej funkcjonalności
● Kopiowanie kodu z poprzedniego projektu jest czasochłonne
● Rozwiązanie:
○ Stworzenie traita, który może być użyty w wielu modelach (wystarczy
skopiować jeden plik)
● Jeśli dana funkcjonalność jest użyta w kilku projektach, staje się kandydatem
do wydzielonej biblioteki
#3 - Utworzenie prostej paczki
● Utwórz paczkę, by nie kopiować funkcjonalności za każdym razem
● Kroki:
○ Utwórz repozytorium na GitHub z dobrą nazwą
○ Utwórz pliki:
■ composer.json - zawiera nazwę projektu, wymagane biblioteki itp.
■ readme.md - opis projektu, proces instalacyjny, opis API itp.
■ license - po prostu skopiuj z internetu :P (MIT jest najpopularniejsze)
○ Utwórz katalog:
■ src/ - wstaw tutaj wszystkie potrzebne pliki
● Utwórz pierwszy release
#4 - Publikacja paczki
● Utwórz konto na packagist.org
● Połącz repozytorium na GitHubie z kontem na Packagist
○ Przejdź do Ustawienia > Integracje > Packagist
○ Skopiuj swój kod API z packagist i uruchom autoaktualizację
repozytorium
● Voilà!
○ Twoja paczka może być wyszukana i zainstalowana przez Composera
#5 - Instalacja paczki przez Composera
● Po prostu wykonaj komendę:
composer require GITHUB_USER/PACKAGE_NAME
○ np. composer require highsolutions/eloquent-sequence
● Paczka zostanie zainstalowana i możesz zastąpić wcześniejsze rozwiązanie:
○ Usuń trait z repozytorium
○ Zmień namespace z traita, z którego korzystałeś do tego z paczki
○ Sprawdź czy wszystko działa
#6 - Utrzymanie paczki
● Gdy opublikujesz paczkę, powinieneś ją utrzymywać i rozwijać
● Kod powinien być dobrze udokumentowany (phpDoc, readme)
● Używaj najlepszych praktyk -> to w końcu Twoja wizytówka
● Lepiej drobne commity, a często
● Używaj Semantic Versioning
#6 - Semantic Versioning
#7 - Nie zapomnij o unit testach!
● Unit testy zwiększą oceny i pewność korzystania z Twojej paczki
● Dodaj katalog tests do paczki
○ /tests
■ Models - dla modeli Eloquent (jeśli potrzebne)
■ Unit - tutaj wstaw testy (można też stworzyć inne katalogi, np.
Integration)
■ stubs - dla plików potrzebnych przez testy (pliki, obrazki, migracje)
■ temp - dla plików tymczasowych (baza danych .sqlite, logi itp.)
● Dodaj plik TestCase.php (np. z tego Gista)
● Dodaj bibliotekę phpunit do wymagań i utwórz plik phpunit.xml
● Wywołuj testy przez: vendor/bin/phpunit
#8 - Udostępnij paczkę
● Gdy paczka jest przetestowana i działa, pokaż ją światu!
● Napisz o tym na twitterze, swoim blogu, fanpage’u, medium itp.
● Zgłoś swoją paczkę do Laravel News
● A gdy użytkownicy się pojawią:
○ Reaguj szybko na Issues i Pull Requesty
○ Usprawniaj swoją paczkę jeśli zgłaszana potrzebna jest ważna i
przydatna
○ Aktualizuj swoją paczkę gdy wyjdzie nowa wersja Laravela
#9 - Potrzebujesz pomocy?
● Bootpack - “czarodziejski” kreator paczek
● laravel-packager - narzędzie CLI do generowania paczki wewnątrz Laravela
● laravel5-package-template - boilerplate dla paczki
● https://www.google.pl/search?q=how+to+create+Laravel+package
● skopiować kod jakiejś paczki :)
#10 - Have fun
● Open Source jest fajne / naprawdę!
● Twórz paczki, nawet jeśli tylko Ty byś używał (packagist.com pozwala na
prywatne repozytoria)
● Któregoś dnia stworzysz paczkę, z której będzie korzystać wielu
programistów Laravela, wdzięcznych że ktoś rozwiązał problem za nich
#11 - Nasze paczki
● eloquent-sequence - Łatwe zarządzanie kolejnością obiektów w bazie danych
● laravel-translation-manager - GUI do zarządzania translacjami wraz z edytowaniem
tłumaczeń na żywo
● laravel-poster - Powiadomienia na Slacka o postach opublikowanych na danym
fanpage na Facebooku
● laravel-github-hook - Proste Continuous Delivery
● laravel-lang-import-export - Import & Export tłumaczeń do/z CSV
● laravel-feed - Proste tworzenie feedów RSS 2.0
● laravel-google-keywords - Wyświetlanie ostatnich słów kluczowych użytych do
znalezienia Twojej strony w Google
● laravel-environments - Zarządzanie różnymi środowiskami projektu
Pytania?
adam@highsolutions.pl
@AdamMatysiak

More Related Content

Similar to EloquentSequence - historia pewnej biblioteki Open Source

Docker praktyczne podstawy
Docker  praktyczne podstawyDocker  praktyczne podstawy
Docker praktyczne podstawySages
 
Elasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla WielkodanowcówElasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla WielkodanowcówŁukasz Kuczyński
 
Kubernetes i Docker Swarm - Tomasz Woszczynski
Kubernetes i Docker Swarm - Tomasz WoszczynskiKubernetes i Docker Swarm - Tomasz Woszczynski
Kubernetes i Docker Swarm - Tomasz Woszczynskiduchowe50k
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logówDivante
 
Drupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
Drupal Rules - Drupal Idzie Na Studia - Jarosław SobieckiDrupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
Drupal Rules - Drupal Idzie Na Studia - Jarosław SobieckiGrzegorz Bartman
 
3Camp Tech 2016/11/15 - Front-end tooling: package managers
3Camp Tech 2016/11/15 - Front-end tooling: package managers3Camp Tech 2016/11/15 - Front-end tooling: package managers
3Camp Tech 2016/11/15 - Front-end tooling: package managersMichał Michalczuk
 
Sekrety magicznego ogrodu Docker
Sekrety magicznego ogrodu DockerSekrety magicznego ogrodu Docker
Sekrety magicznego ogrodu DockerKamil Grabowski
 
Testy integracyjne
Testy integracyjneTesty integracyjne
Testy integracyjnePROSKAR
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Laravel Poland MeetUp
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Grzegorz Bartman
 
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]Droptica
 
Rails tobak2005
Rails tobak2005Rails tobak2005
Rails tobak2005Tomasz Bak
 
Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]Droptica
 
Jak stworzyliśmy system kudosów w Laravelu i Slacku
Jak stworzyliśmy system kudosów w Laravelu i SlackuJak stworzyliśmy system kudosów w Laravelu i Slacku
Jak stworzyliśmy system kudosów w Laravelu i SlackuLaravel Poland MeetUp
 
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Krzysztof Synak
 

Similar to EloquentSequence - historia pewnej biblioteki Open Source (20)

Ansible w praktyce
Ansible w praktyceAnsible w praktyce
Ansible w praktyce
 
Docker praktyczne podstawy
Docker  praktyczne podstawyDocker  praktyczne podstawy
Docker praktyczne podstawy
 
Elasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla WielkodanowcówElasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla Wielkodanowców
 
Kubernetes i Docker Swarm - Tomasz Woszczynski
Kubernetes i Docker Swarm - Tomasz WoszczynskiKubernetes i Docker Swarm - Tomasz Woszczynski
Kubernetes i Docker Swarm - Tomasz Woszczynski
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logów
 
Drupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
Drupal Rules - Drupal Idzie Na Studia - Jarosław SobieckiDrupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
Drupal Rules - Drupal Idzie Na Studia - Jarosław Sobiecki
 
3Camp Tech 2016/11/15 - Front-end tooling: package managers
3Camp Tech 2016/11/15 - Front-end tooling: package managers3Camp Tech 2016/11/15 - Front-end tooling: package managers
3Camp Tech 2016/11/15 - Front-end tooling: package managers
 
Sekrety magicznego ogrodu Docker
Sekrety magicznego ogrodu DockerSekrety magicznego ogrodu Docker
Sekrety magicznego ogrodu Docker
 
Testy integracyjne
Testy integracyjneTesty integracyjne
Testy integracyjne
 
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%Jak przyspieszyłem aplikację produkcyjną o ponad 40%
Jak przyspieszyłem aplikację produkcyjną o ponad 40%
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
 
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
Docker na MacOS przy wsparciu maszyny wirtualnej z Linuksem [PL]
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Rails tobak2005
Rails tobak2005Rails tobak2005
Rails tobak2005
 
Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]Migrate API w Drupalu [PL]
Migrate API w Drupalu [PL]
 
Jak stworzyliśmy system kudosów w Laravelu i Slacku
Jak stworzyliśmy system kudosów w Laravelu i SlackuJak stworzyliśmy system kudosów w Laravelu i Slacku
Jak stworzyliśmy system kudosów w Laravelu i Slacku
 
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16
 
Programowanie
ProgramowanieProgramowanie
Programowanie
 
Programowanie
ProgramowanieProgramowanie
Programowanie
 
Php5
Php5Php5
Php5
 

More from Laravel Poland MeetUp

WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...Laravel Poland MeetUp
 
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) Laravel Poland MeetUp
 
Kilka slajdów o castowaniu atrybutów w Eloquent
Kilka slajdów o castowaniu atrybutów w EloquentKilka slajdów o castowaniu atrybutów w Eloquent
Kilka slajdów o castowaniu atrybutów w EloquentLaravel Poland MeetUp
 
Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Laravel Poland MeetUp
 
Enumy w Laravelu - dlaczego warto stosować?
Enumy w Laravelu - dlaczego warto stosować?Enumy w Laravelu - dlaczego warto stosować?
Enumy w Laravelu - dlaczego warto stosować?Laravel Poland MeetUp
 
Laravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravel Poland MeetUp
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPLaravel Poland MeetUp
 
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelWstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelLaravel Poland MeetUp
 
Laravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Poland MeetUp
 
Speed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerSpeed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerLaravel Poland MeetUp
 

More from Laravel Poland MeetUp (20)

WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
 
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug) xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
xD bug - Jak debugować PHP-owe aplikacje (Xdebug)
 
Kilka slajdów o castowaniu atrybutów w Eloquent
Kilka slajdów o castowaniu atrybutów w EloquentKilka slajdów o castowaniu atrybutów w Eloquent
Kilka slajdów o castowaniu atrybutów w Eloquent
 
Licencje otwartego oprogramowania
Licencje otwartego oprogramowaniaLicencje otwartego oprogramowania
Licencje otwartego oprogramowania
 
Jak przemycić Shape Up do Scruma?
Jak przemycić Shape Up do Scruma?Jak przemycić Shape Up do Scruma?
Jak przemycić Shape Up do Scruma?
 
Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)
 
Enumy w Laravelu - dlaczego warto stosować?
Enumy w Laravelu - dlaczego warto stosować?Enumy w Laravelu - dlaczego warto stosować?
Enumy w Laravelu - dlaczego warto stosować?
 
Laravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelniania
 
Walidacja w Laravelu
Walidacja w LaraveluWalidacja w Laravelu
Walidacja w Laravelu
 
(prawie) Wszystko o Tinkerze
(prawie) Wszystko o Tinkerze(prawie) Wszystko o Tinkerze
(prawie) Wszystko o Tinkerze
 
Laravel Jobs i PHP8
Laravel Jobs i PHP8Laravel Jobs i PHP8
Laravel Jobs i PHP8
 
Wszystko o Laravel Livewire
Wszystko o Laravel Livewire Wszystko o Laravel Livewire
Wszystko o Laravel Livewire
 
Laravel/PHP - zderzenie z PDFami
Laravel/PHP - zderzenie z PDFamiLaravel/PHP - zderzenie z PDFami
Laravel/PHP - zderzenie z PDFami
 
Action-based Laravel
Action-based LaravelAction-based Laravel
Action-based Laravel
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHP
 
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelWstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
 
Laravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydach
 
AOP w Laravel
AOP w LaravelAOP w Laravel
AOP w Laravel
 
Speed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerSpeed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using Docker
 
Laravel 6.0 - co nowego?
Laravel 6.0 - co nowego?Laravel 6.0 - co nowego?
Laravel 6.0 - co nowego?
 

EloquentSequence - historia pewnej biblioteki Open Source

  • 1. EloquentSequence - Historia pewnej biblioteki Open Source
  • 2. Adam Matysiak CTO / Team Leader adam@highsolutions.pl
  • 3. #1 - Potrzeba ● Pojawiła się potrzeba zarządzania kolejnością rekordów w bazie danych ● Rozwiązanie: ○ Stworzenie atrybutu w modelu (nazwa seq), który przechowuje kolejność ○ Automatyczne ustalanie wartości, gdy obiekt jest zapisany do bazy danych ○ Proste metody przenieś w górę/dół ● Dodatkowe wymagania: ○ Gdy obiekt jest usuwany, atrybut seq powinien być zaktualizowany dla pozostałych ○ Dodanie obsługi dla podzbiorów, np. gdy chcemy pamiętać kolejność dla grup obiektów oddzielnie (np. page_id, user_id itp.)
  • 4. #2 - Potrzeba się powtarza ● Kolejny projekt potrzebuje tej funkcjonalności ● Kopiowanie kodu z poprzedniego projektu jest czasochłonne ● Rozwiązanie: ○ Stworzenie traita, który może być użyty w wielu modelach (wystarczy skopiować jeden plik) ● Jeśli dana funkcjonalność jest użyta w kilku projektach, staje się kandydatem do wydzielonej biblioteki
  • 5. #3 - Utworzenie prostej paczki ● Utwórz paczkę, by nie kopiować funkcjonalności za każdym razem ● Kroki: ○ Utwórz repozytorium na GitHub z dobrą nazwą ○ Utwórz pliki: ■ composer.json - zawiera nazwę projektu, wymagane biblioteki itp. ■ readme.md - opis projektu, proces instalacyjny, opis API itp. ■ license - po prostu skopiuj z internetu :P (MIT jest najpopularniejsze) ○ Utwórz katalog: ■ src/ - wstaw tutaj wszystkie potrzebne pliki ● Utwórz pierwszy release
  • 6. #4 - Publikacja paczki ● Utwórz konto na packagist.org ● Połącz repozytorium na GitHubie z kontem na Packagist ○ Przejdź do Ustawienia > Integracje > Packagist ○ Skopiuj swój kod API z packagist i uruchom autoaktualizację repozytorium ● Voilà! ○ Twoja paczka może być wyszukana i zainstalowana przez Composera
  • 7. #5 - Instalacja paczki przez Composera ● Po prostu wykonaj komendę: composer require GITHUB_USER/PACKAGE_NAME ○ np. composer require highsolutions/eloquent-sequence ● Paczka zostanie zainstalowana i możesz zastąpić wcześniejsze rozwiązanie: ○ Usuń trait z repozytorium ○ Zmień namespace z traita, z którego korzystałeś do tego z paczki ○ Sprawdź czy wszystko działa
  • 8. #6 - Utrzymanie paczki ● Gdy opublikujesz paczkę, powinieneś ją utrzymywać i rozwijać ● Kod powinien być dobrze udokumentowany (phpDoc, readme) ● Używaj najlepszych praktyk -> to w końcu Twoja wizytówka ● Lepiej drobne commity, a często ● Używaj Semantic Versioning
  • 9. #6 - Semantic Versioning
  • 10. #7 - Nie zapomnij o unit testach! ● Unit testy zwiększą oceny i pewność korzystania z Twojej paczki ● Dodaj katalog tests do paczki ○ /tests ■ Models - dla modeli Eloquent (jeśli potrzebne) ■ Unit - tutaj wstaw testy (można też stworzyć inne katalogi, np. Integration) ■ stubs - dla plików potrzebnych przez testy (pliki, obrazki, migracje) ■ temp - dla plików tymczasowych (baza danych .sqlite, logi itp.) ● Dodaj plik TestCase.php (np. z tego Gista) ● Dodaj bibliotekę phpunit do wymagań i utwórz plik phpunit.xml ● Wywołuj testy przez: vendor/bin/phpunit
  • 11. #8 - Udostępnij paczkę ● Gdy paczka jest przetestowana i działa, pokaż ją światu! ● Napisz o tym na twitterze, swoim blogu, fanpage’u, medium itp. ● Zgłoś swoją paczkę do Laravel News ● A gdy użytkownicy się pojawią: ○ Reaguj szybko na Issues i Pull Requesty ○ Usprawniaj swoją paczkę jeśli zgłaszana potrzebna jest ważna i przydatna ○ Aktualizuj swoją paczkę gdy wyjdzie nowa wersja Laravela
  • 12. #9 - Potrzebujesz pomocy? ● Bootpack - “czarodziejski” kreator paczek ● laravel-packager - narzędzie CLI do generowania paczki wewnątrz Laravela ● laravel5-package-template - boilerplate dla paczki ● https://www.google.pl/search?q=how+to+create+Laravel+package ● skopiować kod jakiejś paczki :)
  • 13. #10 - Have fun ● Open Source jest fajne / naprawdę! ● Twórz paczki, nawet jeśli tylko Ty byś używał (packagist.com pozwala na prywatne repozytoria) ● Któregoś dnia stworzysz paczkę, z której będzie korzystać wielu programistów Laravela, wdzięcznych że ktoś rozwiązał problem za nich
  • 14. #11 - Nasze paczki ● eloquent-sequence - Łatwe zarządzanie kolejnością obiektów w bazie danych ● laravel-translation-manager - GUI do zarządzania translacjami wraz z edytowaniem tłumaczeń na żywo ● laravel-poster - Powiadomienia na Slacka o postach opublikowanych na danym fanpage na Facebooku ● laravel-github-hook - Proste Continuous Delivery ● laravel-lang-import-export - Import & Export tłumaczeń do/z CSV ● laravel-feed - Proste tworzenie feedów RSS 2.0 ● laravel-google-keywords - Wyświetlanie ostatnich słów kluczowych użytych do znalezienia Twojej strony w Google ● laravel-environments - Zarządzanie różnymi środowiskami projektu
  • 15.