Laravel - Laravel
Deweloper(zy) | Taylor Otwell |
---|---|
Pierwsze wydanie | czerwiec 2011 |
Wersja stabilna | 8.16.1 / 2020-11-25 [±]
|
Magazyn | Repozytorium Laravela |
Napisane w | PHP |
Rodzaj | Rama internetowa |
Licencja | Licencja MIT |
Strona internetowa | laravel |
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 |
---|---|---|
1,0 | czerwiec 2011 | |
2,0 | wrzesień 2011 | |
3,0 | 22 lutego 2012 | |
3.1 | 27 marca 2012 r. | |
3.2 | 22 maja 2012 | |
4.0 | 28 maja 2013 r. | ≥ 5.3.0 |
4.1 | 12 grudnia 2013 r. | ≥ 5.3.0 |
4.2 | 1 czerwca 2014 | ≥ 5.4.0 |
5.0 | 4 lutego 2015 r. | ≥ 5.4.0 |
5.1 LTS | 9 czerwca 2015 | ≥ 5.5.9 |
5.2 | 21 grudnia 2015 | ≥ 5.5.9 |
5,3 | 23 sierpnia 2016 | ≥ 5.6.4 |
5.4 | 24 stycznia 2017 r. | ≥ 5.6.4 |
5,5 LTS | 30 sierpnia 2017 r. | ≥ 7.0.0 |
5,6 | 7 lutego 2018 | ≥ 7.1.3 |
5,7 | 4 września 2018 r. | ≥ 7.1.3 |
5,8 | 26 lutego 2019 | ≥ 7.1.3 |
6 LTS | 3 września 2019 r. | ≥ 7,2,0 i ≤ 8,0 |
7 | 3 marca 2020 | ≥ 7,2,5 i ≤ 8,0 |
8 | 8 września 2020 r. | ≥ 7,3,0 i ≤ 8,0 |
9 LTS | 25 stycznia 2022 | |
10 | 24 stycznia 2023 | |
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
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ż
- Porównanie frameworków internetowych
- Porównanie silników szablonów internetowych
- Październik , system zarządzania treścią zbudowany na Laravel
- Vue.js , framework front-end, który jest domyślnie dostarczany w Laravel
Bibliografia
Dalsza lektura
- Laravel Design Patterns and Best Practices, Packt, ISBN 978-1783287987 , lipiec 2014, autor: Arda Kılıçdağı i H. İbrahim Yilmaz