Laravel - Laravel

Laravel
Logo Laravel
Deweloper(zy) Taylor Otwell
Pierwsze wydanie czerwiec 2011 ; 10 lat temu ( 2011-06 )
Wersja stabilna
8.16.1 / 2020-11-25 [±]
Magazyn Repozytorium Laravela
Napisane w PHP
Rodzaj Rama internetowa
Licencja Licencja MIT
Strona internetowa laravel .com

Laravel jest darmowym , open-source'owym frameworkiem internetowym PHP , stworzonym przez Taylora Otwella i przeznaczonym do tworzenia aplikacji internetowych zgodnie ze wzorcem architektonicznym model-widok-kontroler (MVC) i opartym na Symfony . Niektóre cechy Laravela to modułowy system pakowania z dedykowanym menedżerem zależności, różne sposoby uzyskiwania dostępu do relacyjnych baz danych , narzędzia pomagające we wdrażaniu i utrzymaniu aplikacji oraz orientacja na cukier składniowy .

Kod źródłowy z laravel jest hostowany na GitHub i licencjonowana na warunkach licencji MIT .

Historia

Taylor Otwell stworzył Laravela jako próbę dostarczenia bardziej zaawansowanej alternatywy dla frameworka CodeIgniter , który nie zapewniał pewnych funkcji, takich jak wbudowana obsługa uwierzytelniania i autoryzacji użytkowników . Pierwsza wersja beta Laravela została udostępniona 9 czerwca 2011 roku, a następnie wersja Laravel 1 w tym samym miesiącu. Laravel 1 zawierał wbudowaną obsługę uwierzytelniania, lokalizacji , modeli , widoków , sesji , routingu i innych mechanizmów, ale brakowało mu wsparcia dla kontrolerów, co uniemożliwiło mu bycie prawdziwym frameworkiem MVC .

Laravel 2 został wydany we wrześniu 2011 roku, przynosząc różne ulepszenia od autora i społeczności. Najważniejsze nowe funkcje obejmowały obsługę kontrolerów, dzięki którym Laravel 2 stał się w pełni zgodny z MVC, wbudowaną obsługę zasady odwrócenia kontroli (IoC) oraz system szablonów o nazwie Blade . Minusem było usunięcie obsługi pakietów firm trzecich w Laravel 2.

Laravel 3 został wydany w lutym 2012 roku z zestawem nowych funkcji, w tym interfejsem wiersza poleceń cmd (CLI) o nazwie Artisan , wbudowaną obsługą większej liczby systemów zarządzania bazami danych , migracją baz danych jako formą kontroli wersji układów baz danych, obsługą obsługa zdarzeń oraz system pakowania zwany Bundles . Wzrost bazy użytkowników i popularności Laravela zbiegł się z wydaniem Laravel 3.

Laravel 4 o nazwie kodowej Illuminate został wydany w maju 2013 roku. Został stworzony jako kompletne przepisanie frameworka Laravel, migrując jego układ do zestawu oddzielnych pakietów dystrybuowanych przez Composer , który służy jako menedżer pakietów na poziomie aplikacji . Taki układ poprawił rozszerzalność Laravela 4, który został połączony z jego oficjalnym harmonogramem regularnych wydań obejmującym sześć miesięcy między kolejnymi pomniejszymi wydaniami . Inne nowe funkcje w wydaniu Laravel 4 obejmują umieszczanie bazy danych dla początkowej populacji baz danych, obsługę kolejek wiadomości , wbudowaną obsługę wysyłania różnych typów wiadomości e-mail oraz obsługę opóźnionego usuwania rekordów bazy danych, zwanego miękkim usuwaniem .

Laravel 5 został wydany w lutym 2015 roku w wyniku wewnętrznych zmian, które doprowadziły do ​​zmiany numeracji ówczesnego wydania Laravel 4.3. Nowe funkcje w wydaniu Laravel 5 obejmują obsługę planowania okresowo wykonywanych zadań za pomocą pakietu o nazwie Scheduler , warstwę abstrakcji o nazwie Flysystem, która umożliwia korzystanie z pamięci zdalnej w taki sam sposób, jak z lokalnych systemów plików , ulepszoną obsługę zasobów pakietów za pośrednictwem Elixir oraz uproszczone uwierzytelnianie obsługiwane zewnętrznie dzięki opcjonalnemu pakietowi Socialite . Laravel 5 wprowadził również nową strukturę wewnętrznego drzewa katalogów dla opracowanych aplikacji.

Laravel 5.1, wydany w czerwcu 2015, był pierwszym wydaniem Laravela, które otrzymało długoterminowe wsparcie (LTS). Nowe wersje LTS planowano raz na dwa lata.

Laravel 5.3 został wydany 23 sierpnia 2016 r. Nowe funkcje w wersji 5.3 koncentrują się na zwiększeniu szybkości działania programistów poprzez dodanie dodatkowych, gotowych do użycia ulepszeń dla typowych zadań.

Laravel 5.4 został wydany 24 stycznia 2017 roku, z wieloma nowymi funkcjami, takimi jak Laravel Dusk, Laravel Mix, komponenty i sloty na ostrza, e-maile z przecenami, automatyczne fasady, ulepszenia tras, wiadomości o wyższym porządku dla kolekcji i wiele innych.

Laravel 6 został wydany 3 września 2019 r., generowanie kodu planu zmiany, wprowadzenie wersjonowania semantycznego, zgodność z Laravel Vapor, ulepszone odpowiedzi na autoryzację, ulepszone oprogramowanie pośredniczące zadania, leniwe kolekcje i ulepszenia podzapytań. Rusztowanie frontendowe zostało usunięte z głównego pakietu i przeniesione do pakietu laravel/ui.

Laravel 7 został wydany 3 marca 2020 r., z nowymi funkcjami, takimi jak Laravel Sanctum, niestandardowe elokwentne obsady, tagi komponentów ostrza, płynne operacje na ciągach i ulepszenia wiązania modelu trasy.

Najnowsza wersja Laravel to wersja 8, która została wydana 8 września 2020 r., z nowymi funkcjami, takimi jak Laravel Jetstream, klasy fabryki modeli, squashing migracji, CSS Tailwind dla widoków stronicowania i inne ulepszenia użyteczności.

Historia wydań

Wersje oznaczone jako LTS są obsługiwane z poprawkami błędów przez 2 lata i poprawkami bezpieczeństwa przez 3 lata. Inne wersje są obsługiwane z poprawkami błędów przez 6 miesięcy i poprawkami bezpieczeństwa przez 1 rok.

Wersja Data wydania Wersja PHP
Stara wersja, nie jest już utrzymywana: 1,0 czerwiec 2011
Stara wersja, nie jest już utrzymywana: 2,0 wrzesień 2011
Stara wersja, nie jest już utrzymywana: 3,0 22 lutego 2012
Stara wersja, nie jest już utrzymywana: 3.1 27 marca 2012 r.
Stara wersja, nie jest już utrzymywana: 3.2 22 maja 2012
Stara wersja, nie jest już utrzymywana: 4.0 28 maja 2013 r. ≥ 5.3.0
Stara wersja, nie jest już utrzymywana: 4.1 12 grudnia 2013 r. ≥ 5.3.0
Stara wersja, nie jest już utrzymywana: 4.2 1 czerwca 2014 ≥ 5.4.0
Stara wersja, nie jest już utrzymywana: 5.0 4 lutego 2015 r. ≥ 5.4.0
Stara wersja, nie jest już utrzymywana: 5.1 LTS 9 czerwca 2015 ≥ 5.5.9
Stara wersja, nie jest już utrzymywana: 5.2 21 grudnia 2015 ≥ 5.5.9
Stara wersja, nie jest już utrzymywana: 5,3 23 sierpnia 2016 ≥ 5.6.4
Stara wersja, nie jest już utrzymywana: 5.4 24 stycznia 2017 r. ≥ 5.6.4
Stara wersja, nie jest już utrzymywana: 5,5 LTS 30 sierpnia 2017 r. ≥ 7.0.0
Stara wersja, nie jest już utrzymywana: 5,6 7 lutego 2018 ≥ 7.1.3
Stara wersja, nie jest już utrzymywana: 5,7 4 września 2018 r. ≥ 7.1.3
Stara wersja, nie jest już utrzymywana: 5,8 26 lutego 2019 ≥ 7.1.3
Starsza wersja, ale nadal utrzymywana: 6 LTS 3 września 2019 r. ≥ 7,2,0 i ≤ 8,0
Stara wersja, nie jest już utrzymywana: 7 3 marca 2020 ≥ 7,2,5 i ≤ 8,0
Aktualna stabilna wersja: 8 8 września 2020 r. ≥ 7,3,0 i ≤ 8,0
Przyszłe wydanie: 9 LTS 25 stycznia 2022
Przyszłe wydanie: 10 24 stycznia 2023
Przyszłe wydanie: 11 styczeń 2024
Legenda: Stara wersja, nieutrzymywana Starsza wersja, nadal utrzymywana Aktualna stabilna wersja Najnowsza wersja zapoznawcza Przyszłe wydanie

Źródło: Laravel

Cechy

Następujące cechy służą jako kluczowe punkty projektowe Laravela (jeżeli nie zaznaczono inaczej, opisy odnoszą się do cech Laravela 3):

  • Pakiety zapewniają modułowy system pakowania od czasu wydania Laravel 3, z dostępnymi już pakietami funkcji, które ułatwiają dodawanie do aplikacji. Ponadto Laravel 4 używa Composera jako menedżera zależności, aby dodać pakiety PHP niezależne od frameworka i specyficzne dla Laravela, dostępne z repozytorium Packagist .
  • Eloquent ORM ( mapowanie obiektowo-relacyjne ) to zaawansowana implementacja PHP wzorca aktywnego rekordu , zapewniająca jednocześnie wewnętrzne metody wymuszania ograniczeń relacji między obiektami bazy danych . Podążając za wzorcem aktywnego rekordu, Eloquent ORM przedstawia tabele bazy danych jako klasy , z ich instancjami obiektów powiązanymi z pojedynczymi wierszami tabeli .
  • Konstruktor zapytań , dostępny od Laravela 3, zapewnia bardziej bezpośredni dostęp do bazy danych, alternatywę dla Eloquent ORM. Zamiast wymagać bezpośredniego pisania zapytań SQL, konstruktor zapytań Laravela dostarcza zestaw klas i metod zdolnych do programowego budowania zapytań. Umożliwia także selektywne buforowanie wyników wykonanych zapytań.
  • Logika aplikacji jest integralną częścią opracowanych aplikacji, zaimplementowaną za pomocą kontrolerów lub jako część deklaracji tras. Składni używane do określania logiki aplikacji jest podobna do tej stosowanej w Sinatra ramy.
  • Routing odwrotny definiuje relację między łączami a trasami, umożliwiając automatyczne propagowanie późniejszych zmian tras do odpowiednich łączy. Kiedy łącza są tworzone przy użyciu nazw istniejących tras, Laravel automatycznie tworzy odpowiednie jednolite identyfikatory zasobów (URI).
  • Kontrolery restful zapewniają opcjonalny sposób oddzielenia logiki obsługującej żądania HTTP GET i POST .
  • Automatyczne ładowanie klas zapewnia automatyczne ładowanie klas PHP bez konieczności ręcznej konserwacji ścieżek dołączania. Ładowanie na żądanie zapobiega włączaniu zbędnych komponentów, dzięki czemu ładowane są tylko faktycznie używane komponenty.
  • Układacze widoków służą jako konfigurowalne logiczne jednostki kodu, które mogą być wykonywane po załadowaniu widoku.
  • Silnik szablonów Blade łączy jeden lub więcej szablonów z modelem danych w celu utworzenia widoków wynikowych, dokonując tego poprzez transpilację szablonów do buforowanego kodu PHP w celu zwiększenia wydajności. Blade dostarcza również zestaw własnych struktur kontrolnych, takich jak instrukcje warunkowe i pętle , które są wewnętrznie odwzorowane na ich odpowiedniki w PHP. Co więcej, usługi Laravel mogą być wywoływane z szablonów Blade, a sam silnik szablonów może być rozszerzony o niestandardowe dyrektywy.
  • Kontenery IoC umożliwiają generowanie nowych obiektów zgodnie z zasadą odwrócenia kontroli (IoC), w której framework wywołuje kod specyficzny dla aplikacji lub zadania, z opcjonalnym tworzeniem instancji i odwoływaniem się do nowych obiektów jako singletonów .
  • Migracje zapewniają system kontroli wersji dla schematów baz danych , dzięki czemu możliwe jest powiązanie zmian w bazie kodu aplikacji z wymaganymi zmianami w układzie bazy danych. W rezultacie ta funkcja upraszcza wdrażanie i aktualizowanie aplikacji opartych na Laravel.
  • Inicjowanie bazy danych umożliwia zapełnienie tabel bazy danych wybranymi danymi domyślnymi, które można wykorzystać do testowania aplikacjilub wykonać jako część początkowej konfiguracji aplikacji.
  • Testy jednostkowe są dostarczane jako integralna część Laravela, która sama zawiera testy jednostkowe, które wykrywają i zapobiegają regresji we frameworku. Testy jednostkowe można przeprowadzać za pomocą dostarczonego narzędzia wiersza poleceń artisan .
  • Automatyczna paginacja upraszcza zadanie implementacji paginacji, zastępując zwykłe ręczne podejścia do implementacji automatycznymi metodami zintegrowanymi z Laravel.
  • Żądanie formularza jest cechą Laravela 5, która służy jako podstawa do walidacji danych wejściowych formularza przez wewnętrznie powiązane detektory zdarzeń , co skutkuje automatycznym wywoływaniem metod walidacji formularzy i generowaniem rzeczywistego formularza.
  • Homestead - maszyna wirtualna Vagrant , która zapewnia programistom Laravela wszystkie narzędzia niezbędne do rozwijania Laravela od razu po wyjęciu z pudełka, w tym Ubuntu , Gulp , Bower i inne narzędzia programistyczne przydatne w tworzeniu pełnowymiarowych aplikacji internetowych.
  • Canvas — platforma wydawnicza oparta na Laravel, która pomaga wizualizować miesięczne trendy, sprawdzać, skąd pochodzą czytelnicy i o której porze dnia wolą czytać treści. Funkcje takie jak: statystyki publikacji, pisanie bez rozpraszania uwagi, integracja z Unsplash , niestandardowe dane społecznościowe.
  • Lazy Collection - Ta funkcja frameworka PHP Laravel 6, przede wszystkim umożliwia radzenie sobie z dużymi obciążeniami danych, przy jednoczesnym utrzymaniu niskiego zużycia pamięci. Co więcej, po przełączeniu ze wszystkich ( _ na kursor ( ), tylko jeden ekspresyjny model jest przenoszony w pamięci naraz, ponieważ kursor ( ) korzysta z instancji LazyCollection.

Pakiety własne

Gotowe do użycia pakiety dostarczane przez Laravel za pośrednictwem Composer i Packagist obejmują:

  • Kasjer , wprowadzony w Laravel 4.2, zapewnia interfejs do zarządzania usługami rozliczeń abonamentu dostarczanymi przez Stripe , takimi jak obsługa kuponów i generowanie faktur .
  • Envoy , wprowadzony w Laravel 4.2, zapewnia przejrzystą, minimalną składnię do definiowania typowych zadań uruchamianych na zdalnych serwerach. Używając składni typu Blade, możesz łatwo skonfigurować zadania do wdrożenia, polecenia Artisan i nie tylko.
  • Socialite zapewnia uproszczone mechanizmy uwierzytelniania z różnymi dostawcami OAuth , w tym z Facebookiem , Twitterem , Google , GitHub i Bitbucket .
  • Passport , wprowadzony w Laravel 5.3, zapewnia pełną implementację serwera OAuth2 dla aplikacji Laravel w ciągu kilku minut.
  • Scout , wprowadzony w Laravel 5.3, zapewnia proste, oparte na sterownikach rozwiązanie do dodawania wyszukiwania pełnotekstowego do modeli Eloquent.
  • Dusk , wprowadzony w Laravel 5.4, zapewnia ekspresyjny, łatwy w użyciu interfejs API do automatyzacji i testowania przeglądarki.
  • Horizon , wprowadzony w Laravel 5.5, zapewnia piękny pulpit nawigacyjny i konfigurację opartą na kodzie dla kolejek Redis zasilanych przez Laravel .
  • Telescope , wprowadzony w Laravel 5.7, zapewnia wgląd w żądania przychodzące do aplikacji, wyjątki, wpisy w dzienniku, zapytania do bazy danych, zadania w kolejce, pocztę, powiadomienia, operacje w pamięci podręcznej, zaplanowane zadania, zrzuty zmiennych i wiele innych.
  • Sanctum , wprowadzone w Laravel 7.0, zapewnia system uwierzytelniania piórkowego dla SPA (aplikacje jednostronicowe), aplikacji mobilnych i prostych interfejsów API opartych na tokenach. Początkowo nazywał się Laravel Airlock, został przemianowany ze względu na spór o znak towarowy dotyczący nazwy „Airlock”.
  • Jetstream , wprowadzony w Laravel 8.0, zapewnia szkielet aplikacji dla Laravel. Ten pakiet skutecznie opiera się na idei narzędzi interfejsu użytkownika wbudowanych w wcześniejsze aplikacje Laravel, umożliwiając użytkownikowi wybór między dwiema opcjami, Livewire + Blade lub Inertia.js + Vue. Ten pakiet współpracuje z Laravel Fortify. Niedługo po wydaniu Laravela pojawiły się pewne kontrowersje z użytkownikami Taylora Otwell i Laravela, ponieważ niektórzy wierzą, że stare szkielety aplikacji są przestarzałe na rzecz Jetstream. Od tego czasu wyjaśniono, że tak nie jest.
  • Fortify , wprowadzony w Laravel 8.0, dostarczający szkielet aplikacji dla Laravel. Fortify służy do zarządzania typowymi zadaniami użytkownika, opierając się na typowym uwierzytelnianiu, aby zapewnić takie rzeczy, jak zespoły i mechanizmy uwierzytelniania dwuskładnikowego. Pakiet ściśle współpracuje z Laravel Jetstream. Fortify jest w pewnym stopniu oparty na funkcjach, które zostały pierwotnie stworzone dla Laravel Spark.
  • Breeze, Laravel Breeze to minimalna, prosta implementacja wszystkich funkcji uwierzytelniania Laravel, w tym logowania, rejestracji, resetowania hasła, weryfikacji adresu e-mail i potwierdzania hasła. Domyślna warstwa widoku Laravel Breeze składa się z prostych szablonów Blade stylizowanych za pomocą CSS Tailwind. Breeze stanowi wspaniały punkt wyjścia do rozpoczęcia świeżej aplikacji Laravelu.

Interfejs wiersza poleceń (CLI) Laravela , zwany Artisan , został początkowo wprowadzony w Laravel 3 z ograniczonym zestawem możliwości. Późniejsza migracja Laravela do architektury opartej na Composer pozwoliła Artisanowi na włączenie różnych komponentów z frameworka Symfony , co zaowocowało udostępnieniem dodatkowych funkcji Artisan w Laravel 4.

Funkcje Artisan są mapowane na różne podkomendy narzędzia wiersza poleceń Artisan , zapewniając funkcjonalność, która pomaga w zarządzaniu i tworzeniu aplikacji opartych na Laravel. Typowe zastosowania Artisan obejmują zarządzanie migracjami i seedowaniem baz danych, publikowanie zasobów pakietów oraz generowanie kodu wzorcowego dla nowych kontrolerów i migracji; to drugie uwalnia programistę od tworzenia odpowiednich szkieletów kodu . Funkcjonalność i możliwości Artisan można również rozszerzyć, wdrażając nowe niestandardowe polecenia, które mogą na przykład służyć do automatyzacji powtarzających się zadań specyficznych dla aplikacji.

Konferencje

Taylor Otwell na targach Laracon w USA w 2013 roku

Laracon to oficjalna konferencja Laravel skupiona wokół frameworka Laravel, obejmująca jego rozwój, zastosowania i powiązane ogólne tematy związane z tworzeniem oprogramowania . Laracon odbywał się w przeszłości w Stanach Zjednoczonych , Europie i Internecie. Zazwyczaj konferencja odbywa się co roku w Stanach Zjednoczonych i Europie . Rok 2017 był pierwszym rokiem, w którym Laracon odbył się wyłącznie jako wydarzenie online. 2018 był pierwszym rokiem, w którym Laracon odbył się w Australii. Każdego roku konferencja ma różnych sponsorów i organizatorów, ale Laravel, Laravel News i UserScape są zazwyczaj głównymi organizatorami.

Podczas gdy liczne konferencje Laracon są oficjalnie organizowane, wiele innych konferencji odbywa się pod nazwą Laravel Live. Obecnie odbywają się coroczne konferencje Laravel Live UK i Laravel Live India. Chociaż nie są one oficjalnie zarządzane, mają pozwolenie Taylora Otwell na używanie nazwy Laravel.

Zobacz też

Bibliografia

Dalsza lektura

  • Laravel Design Patterns and Best Practices, Packt, ISBN  978-1783287987 , lipiec 2014, autor: Arda Kılıçdağı i H. İbrahim Yilmaz

Zewnętrzne linki