Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Все про фреймворк Laravel - обзор всех возможностей ларавел кратко

Лекция



Привет, Вы узнаете о том , что такое фреймворк laravel, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое фреймворк laravel, laravel, eloquent orm , настоятельно рекомендую прочитать все из категории Фреймворки. Famworks ( программная платформа).

LARAVEL
PHP FRAMEWORK FOR WEB ARTISANS

Taylor Otwell
Creator of Laravel
www.taylorotwell.com
@taylorotwell
http://taylorotwell.com/on-community/

laravel Release

Версия Дата выпуска Версия PHP
8 8 сентября 2020 г. ≥ 7.3.0
7 3 марта 2020 г. ≥ 7.2.5
6 LTS 3 сентября 2019 г., ≥ 7.2.0
5,8 26 февраля 2019 г., ≥ 7.1.3
5,7 4 сентября 2018 г. ≥ 7.1.3
5,6 7 февраля 2018 г. ≥ 7.1.3
5.5 LTS 30 августа 2017 г. ≥ 7.0.0
5,4 24 января 2017 г. ≥ 5.6.4
5,3 23 августа 2016 г. ≥ 5.6.4
5.2 21 декабря 2015 г. ≥ 5.5.9
5.1 LTS 9 июня 2015 г. ≥ 5.5.9
5.0 4 февраля 2015 г. ≥ 5,4,0
4.2 1 июня 2014 г. ≥ 5,4,0
4.1 12 декабря 2013 г. ≥ 5.3.0
4.0 28 мая, 2013 ≥ 5.3.0
3.2 22 мая 2012 г.
3.1 27 марта 2012 г.
3.0 22 февраля 2012 г.
2.0 Сентябрь 2011 г.
1.0 Июнь 2011 г.
Легенда: Старая версия, не поддерживается Старая версия, все еще поддерживается
Текущая стабильная версия Последняя предварительная версия Будущий выпуск

Google Trends from 2004 to current

https://trends.google.com/trends/explore?date=all&q=Laravel,zend,symfony,yii

Все про  фреймворк Laravel - обзор всех возможностей ларавелВсе про  фреймворк Laravel - обзор всех возможностей ларавел

github trending Repositories

https://github.com/trending/php?since=monthlyВсе про  фреймворк Laravel - обзор всех возможностей ларавел

Почему Ларавел?

Easy to Learn

Все про  фреймворк Laravel - обзор всех возможностей ларавел

Ready For Tomorrow

Great Community

Great Community

https://laracasts.com/

Поднимите свои навыки веб-разработки на новый уровень с помощью экспертных скринкастов о Laravel, Vue и многом другом.

Composer Powered
www.getcomposer.org
Dependency Manager for PHP

Все про  фреймворк Laravel - обзор всех возможностей ларавел Composer Powered www.getcomposer.org Dependency Manager for PHP

Eloquent ORM

Eloquent ORM

Easy for TDD
FAIL PASS
REFACTOR

Easy for TDD (FAIL - PASS - REFACTOR)

INSTALLATION
It’s too easy, I don’t have to tell you.

INSTALLATION It’s too easy, I don’t have to tell you.

IoC
Inverse of Control
IlluminateContainerContainer

IoC Inverse of Control IlluminateContainerContainer

Wikipedia
In software engineering, inversion of control
describes a design in which custom-written
portions of a computer ...

В программной инженерии инверсия управления описывает схему, в которой специально написанные части компьютерной программы получают поток управления из универсальной многоразовой библиотеки «то, что вы получаете, когда ваша программа выполняет вызов» «Удаление зависимости из кода»

Simplifying Dependency Injection
$object = new SomeClass($dependency1, $dependency2);
$object = App::make(‘SomeClass’);

Simplifying Dependency Injection

Hard-coded source dependency
public function sendEmail()
{
$mailer = new Mailer;
$mailer->send();
}
public function sendEm...

Hard-coded source dependency

Telling IoC what we need
$Bar = App::make(‘Bar’); // new Bar;
App::bind(‘Bar’, ‘MockBar’);
$Bar = App::make(‘Bar’); // new...

Telling IoC what we need

Simple ways to bind to the
IoC
App::bind(‘SomeClass’, function() {
return new Foo;
});
$fooObject = new Foo;
$object = App...

Simple ways to bind to the IoC

Singleton Dependencies
$object = App::singleton(‘CurrentUser’, function() {
$auth = App::make(‘Auth’);
return $auth->user(...

Singleton Dependencies

Automatic Dependency Resolution
class EmailService {
public function __construct(Mailer $mailer)
{
$this->mailer = $mailer...

Automatic Dependency Resolution

Service Providers

Service Providers

Поставщики услуг - это центральное место при начальной загрузке всех приложений Laravel. Ваше собственное приложение, а также все основные службы Laravel загружаются через поставщиков услуг.

Service Providers
use IlluminateSupportServiceProvider;
class ContentServiceProvider extends ServiceProvider {
public func...

Service Providers

Laravel Facades
Illuminate/Support/Facades/Facade

Laravel Facades

Фасады предоставляют «статический» интерфейс для классов, доступных в сервисном контейнере приложения . Об этом говорит сайт https://intellect.icu . Laravel поставляется с множеством фасадов, которые обеспечивают доступ почти ко всем функциям Laravel. Фасады Laravel служат «статическими прокси» для базовых классов в сервисном контейнере, обеспечивая преимущества краткого выразительного синтаксиса, сохраняя при этом большую тестируемость и гибкость, чем традиционные статические методы.

Все фасады Laravel определены в пространстве имен. Итак, мы можем легко получить доступ к такому фасаду:Illuminate\Support\Facades

What is Facade
In Laravel Context
Facade is a class that provide access
to an object registered
in the IoC container.
Faca...

What is Facade In Laravel Context

Facade is a class that provide access to an object registered in the IoC container. Facade Class IoC Container Object A cades enable you to hide complex interface behind a simple one.

What is happening?
Illuminate/Support/Facades/Route
Route::get(‘/’, ‘HomeController@getIndex’);
$app->make(‘router’)->get(...

What is happening?

Facades in Laravel
Illuminate/Support/Facades/
App Artisan Auth Blade Cache Config Cookie Crypt
DB Event File Form Hash HT...

Facades in Laravel

Eloquent
Talking to your data
IlluminateDatabaseEloquentModel

Eloquent Talking to your data

Eloquent ORM, включенный в Laravel, предоставляет красивую и простую реализацию ActiveRecord для работы с вашей базой данных. Каждая таблица базы данных имеет соответствующую «Модель», которая используется для взаимодействия с этой таблицей. Модели позволяют запрашивать данные в таблицах, а также вставлять новые записи в таблицу.

Перед началом работы обязательно настройте соединение с базой данных в .

$result = mysql_query(“SELECT * FROM `users`”);
How you query in plain PHP 5.4 or less (deprecated)
$mysqli = new mysqli(“...

Сравнение кодинга с использованием Eloquent ORM и без использования Eloquent ORM

User::all();
DB::table(‘users’)->get();
IlluminateDatabaseQueryBuilder
What happens when you use Eloquent ORM

What happens when you use Eloquent ORM

Create, Read, Update, Delete
Post::create($data);
Post::find($id);
Post::find($id)->update($data);
Post::delete($id);

Create, Read, Update, Delete in Eloquent ORM

Eloquent Model Class
class Post extends Eloquent {
public function comments() {
return $this->hasMany(‘Comment’);
}
public...

Eloquent Model Class class

Eloquent Model Class
class Post extends Eloquent {
public function comments() {
return $this->hasMany(‘Comment’);
}
public...

Eloquent Model Class

$post = Post::find($id);
$author = post->author;
// get the author object
Get Post’s Author Object
$posts = Post::with(‘au...

Get Posts including Authors

Get Post Comments Approved
$post = Post::find($id);
$comments = $post->comments()
->where(‘approved’, true)->get();

Get Post Comments Approved

Model with Query Scope
$published_posts = Post::published()->get();
// gets all posts published
$published_posts = Post::w...

Model with Query Scope

Query Scope Example
class Post extends Eloquent {
public function comments() {
return $this->hasMany(‘Comment’);
}
public ...

Query Scope Example

Eloquent Relations

Eloquent Relations

Eloquent Relationship
One to One
(hasOne)
class User
$this->hasOne(‘Profile’,
‘user_id’);
function Profile()
Users
pK: id
...

Eloquent Relationship One to One (hasOne)

class Post
$this->
hasMany(‘Comment’);
function comments()
Posts
pK: id
title
user_id
Comments
pk: id
fK: post_id
user_id
...

Eloquent Relationship One to Many (hasMany)

class User
$this->
belongsToMany(‘Group’);
function groups()
Users
pK: id
username
email
Groups
pk: id
Name
Group_User
use...

Eloquent Relationship Many to Many (belongsToMany)

class Country
$this->
hasManyThrough(‘User’);
function posts()
Countries
pK: id
name
code
Posts
pk: id
user_id
title
body
...

Eloquent Relationship One to Many through (hasManyThrough)

Eloquent Relationship
Polymorphic Association
$user->image; $movie->image;
class Movie
$this-> morphMany(‘Photo’,
‘imageab...

Eloquent Relationship Polymorphic Association

Eloquent Relationship
Many to Many Polymorphic Association
$movie->tags; $post->tags;
Posts
pK: id
title
body
Taggables
ta...

Eloquent Relationship Many to Many Polymorphic Association

Underneath Eloquent Model
Query Builder
DB::table(‘users’)->get();
DB::table(‘users’)->where(‘email’, ‘raftalks@gmail.com’...

Underneath Eloquent Model Query Builder

Complex Queries via Query Builder
DB::table(‘users’)
->join(‘contacts’, function($join) {
$join->on(‘users.id’, ‘=‘, ‘cont...

. Complex Queries via Query Builder

Find out remaining 70% of Eloquent
Features from the documentation

Find out remaining 70% of Eloquent Features from the documentation

Routing
Wolf

Routing Laravel

Multiple Routing Paradigms
1. route to closures
2. route to controller actions
3. route to RESTful controllers
4. route to...

Multiple Routing Paradigms

  • 1. route to closures
  • 2. route to controller actions
  • 3. route to RESTful controllers
  • 4. route to resource

Множественные парадигмы маршрутизации

  • 1. роуты это замыкания
  • 2. роуты это акшены в контроллерах
  • 3. роуты RESTful контроллеры
  • 4. роуты это ресуры

Routing to Closure
Route::get(‘techtalks’, function() {
return “<h1> Welcome </h1>“;
});
Route::post(‘techtalks’, function...

Routing to Closure

Route Groups and Filters
Route::group([‘prefix’=>’settings’, ‘before’=>’auth’], function() {
Route::get(‘users’, function(...

Route Groups and Filters

Subdomain Routing
// Registering sub-domain routes
Route::group([‘domain’ =>’{account}.fihaara.com’], function() {
Route::...

Subdomain Routing

Routing to a Controller Action
class HomePageController extends BaseController {
public function home()
{
return “welcome ...

Routing to a Controller Action

class TechTalksController extends Controller {
public function getIndex() {} /talks
public function getTalkerProfile($id) ...

Routing to RESTful Controller

class PostsController extends Controller {
public function index() {} // posts GET
public function create() {} // posts/cr...

Routing to Resource Controller

Other Cool Features

MVC in laravel

Все про  фреймворк Laravel - обзор всех возможностей ларавел

Other Cool Features

Authentication
$credentials = [‘username’=> ‘raftalks’, ‘password’ => ‘secret’];
if (Auth::attempt($credentals) === false)...

Authentication

Localization
App::setLocale(‘dv’);
echo Lang::get(‘news.world_news’); // out puts “‫ދ‬ު ‫ނ‬ި ‫ޔ‬ޭ ‫ގ‬ެ ‫ޚ‬ަ ‫ބ‬ަ ‫ރ‬ު ”
ec...

Localization

Artisan CLI
Laravel Provides
Artisan Commands for
Rapid Development
You can develop custom
Artisan commands
for a package ...

. Artisan CLI

Laravel Provides Artisan Commands for Rapid Development You can develop custom Artisan commands for a package or an application

Creating DB Migration
php artisan migrate:make create_users_table --create=users
class Create_Users_table extends Migratio...

Creating DB Migration

Seeding into your DB
class DefaultAdminUserSeeder extends Seeder {
public function run() {
DB::table(‘users’)->delete(); /...

Все про  фреймворк Laravel - обзор всех возможностей ларавел

Seeding into your DB

Events
Event::fire(‘news.created’, $post);
Event::listen(‘news.created’,function($post) {
UserPostCounter::increment(‘post...

Events

Mail
Mail::send(‘emails.welcome’, $data, function($message) use($user)
{
$message->to($user->email, $user->name)
->subject...

Mail

Queues
Beanstalkd
Amazon SQS
IronMQ
Redis
Synchronous (for lcoal use)
Queue::push('SendEmail', [‘message' => $message]);
p...

Queues

  • Beanstalkd
  • Amazon
  • SQS
  • IronMQ
  • Redis
  • Synchronous (for lcoal use)

Remote SSH
SSH::run([
‘cd /var/www’,
‘git pull origin master’
]);

Remote SSH

Laravel Homestead
ng Vagrant, we now have easy way to simply manage virtual mac
Included Softwares
• Ubuntu 14.04
• PHP 5....

Laravel Homestead

ng Vagrant, we now have easy way to simply manage virtual mac Included Softwares

Sign Up -> Add Your Cloud’s API Key -> Serve Happiness
forge.laravel.com

Управляйте своей вселенной - Laravel Admin

Nova - это красиво оформленная административная панель для Laravel. Тщательно созданный создателями Laravel, чтобы сделать вас самым продуктивным разработчиком в галактике.

https://nova.laravel.com/

Все про  фреймворк Laravel - обзор всех возможностей ларавел

Конфигурация, управляемая кодом

Настройте всю панель управления Nova с помощью простого кода PHP. Ни одна из ваших конфигураций Nova не сохраняется в базе данных. Настроить безболезненно. Безболезненно развернуть.

Сохраняет чистоту вашего приложения

Легко добавить панель администрирования Nova в существующее приложение Laravel, не касаясь ваших моделей Eloquent. После настройки ресурса Nova для каждой модели вы готовы к работе.

Laravel + Vue.js = ❤️

Nova - это элегантное одностраничное приложение, созданное на Laravel и Vue.js. Он такой же гладкий, как шелк, и писать нестандартные компоненты очень просто.

Lumen.

Потрясающе быстрый микро-фреймворк от Laravel.

Молниеносные микросервисы и API-интерфейсы с ожидаемой элегантностью.

https://lumen.laravel.com/

Все про  фреймворк Laravel - обзор всех возможностей ларавел

Все про  фреймворк Laravel - обзор всех возможностей ларавел

Meet the community @
IRC
Channel: #laravel
Server: irc.freenode.net
Port: 6667

Laravel Official Packages

  • Cashier (Stripe)
  • Cashier (Paddle)
  • Cashier (Mollie)

Laravel Cashier предоставляет удобный и понятный интерфейс для сервисов выставления счетов по подписке Stripe . Он обрабатывает почти весь шаблонный платежный код подписки, который вы боитесь писать. В дополнение к базовому управлению подпиской, Cashier может обрабатывать купоны, заменять подписку, «количество» подписки, льготные периоды отмены и даже создавать PDF-файлы счетов.

  • Dusk Laravel Dusk предоставляет выразительный, простой в использовании API для автоматизации и тестирования браузера. По умолчанию Dusk не требует установки JDK или Selenium на вашем компьютере. Вместо этого Dusk использует автономную установку ChromeDriver . Однако вы можете использовать любой другой драйвер, совместимый с Selenium, который пожелаете.
  • Envoy Laravel Envoy предоставляет чистый, минимальный синтаксис для определения общих задач, которые вы выполняете на своих удаленных серверах. Используя синтаксис в стиле Blade, вы можете легко настроить задачи для развертывания, команды Artisan и многое другое. В настоящее время Envoy поддерживает только операционные системы Mac и Linux.
  • Horizon Horizon предоставляет красивую панель управления и конфигурацию на основе кода для ваших очередей Redis на базе Laravel. Horizon позволяет легко отслеживать ключевые показатели вашей системы очередей, такие как пропускная способность, время выполнения и сбои заданий.

    Вся ваша рабочая конфигурация хранится в одном простом файле конфигурации, что позволяет вашей конфигурации оставаться в системе управления версиями, где вся ваша команда может сотрудничать.

  • Jetstream Laravel Jetstream - это красиво оформленный каркас приложений для Laravel. Jetstream обеспечивает идеальную отправную точку для вашего следующего приложения Laravel и включает в себя вход в систему, регистрацию, проверку электронной почты, двухфакторную аутентификацию, управление сеансом, поддержку API через Laravel Sanctum и дополнительное управление командой.

    Jetstream разработан с использованием Tailwind CSS и предлагает на ваш выбор строительные леса Livewire или Inertia .

  • Passport Laravel уже позволяет легко выполнять аутентификацию с помощью традиционных форм входа в систему, но как насчет API? API обычно используют токены для аутентификации пользователей и не поддерживают состояние сеанса между запросами. Laravel упрощает аутентификацию API с помощью Laravel Passport, который обеспечивает полную реализацию сервера OAuth2 для вашего приложения Laravel за считанные минуты. Passport построен на основе сервера League OAuth2 , поддерживаемого Энди Миллингтоном и Саймоном Хэмпом.
  • Sanctum Laravel Sanctum предоставляет легкую систему аутентификации для SPA (одностраничных приложений), мобильных приложений и простых API на основе токенов. Sanctum позволяет каждому пользователю вашего приложения генерировать несколько токенов API для своей учетной записи. Этим токенам могут быть предоставлены способности / области, которые определяют, какие действия токенам разрешено выполнять.
  • Scout Laravel Scout предоставляет простое решение на основе драйверов для добавления полнотекстового поиска в ваши модели Eloquent . Используя наблюдателей моделей, Scout будет автоматически синхронизировать ваши поисковые индексы с вашими записями Eloquent.

    В настоящее время Scout поставляется с Algolia ; однако написать собственные драйверы просто, и вы можете расширить Scout своими собственными реализациями поиска.

  • Socialite Помимо типичной аутентификации на основе форм, Laravel также предоставляет простой и удобный способ аутентификации с поставщиками OAuth с помощью Laravel Socialite . Socialite в настоящее время поддерживает аутентификацию через Facebook, Twitter, LinkedIn, Google, GitHub, GitLab и Bitbucket.
  • Telescope Laravel Telescope - элегантный помощник отладки для фреймворка Laravel. Telescope обеспечивает понимание запросов, поступающих в ваше приложение, исключений, записей журнала, запросов к базе данных, заданий в очереди, почты, уведомлений, операций с кешем, запланированных задач, дампов переменных и т. Д. Telescope станет прекрасным дополнением к вашей локальной среде разработки Laravel.

Laravel Other Packages

Laravel Envoyer


Laravel Envoyer — это сервис развертывания с нулевым простоем для ваших PHP и Laravel приложений.

Laravel Mix


Laravel Mix (в прошлом назывался Laravel Elixir) — это инструмент, который дает вам практически полностью управляемый процесс сборки фронтенда. Он обеспечивает понятный и удобный API для определения базовых этапов сборки Webpack для вашего Laravel приложения.

Laravel Medialibrary


Пакет Laravel Medialibrary ассоциируетвсе типы файлов с Eloquent-моделями. Этот пакет делает работу с медиа-объектами удивительно легкой.

Laravel Echo


Laravel Echo — это JavaScript библиотека, которая позволяет вам подписываться на каналы и прослушивать транслируемые события через WebSoсkets.

Laravel Debugbar

Это пакет для интеграции панели отладки PHP с Laravel. Он включает ServiceProvider для регистрации панели отладки и присоединения ее к выходным данным. Вы можете публиковать активы и настраивать их через Laravel. Он загружает некоторые коллекторы для работы с Laravel и реализует пару настраиваемых DataCollectors, специфичных для Laravel. Он настроен для отображения перенаправлений и запросов Ajax.

Все про  фреймворк Laravel - обзор всех возможностей ларавел

Meet the community @ IRC Channel: #laravel

Next Laracon
laracon.eu/2014

Next Laracon laracon.eu

???

В заключение, эта статья об фреймворк laravel подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое фреймворк laravel, laravel, eloquent orm и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Фреймворки. Famworks ( программная платформа)

создано: 2016-03-29
обновлено: 2021-03-13
132488



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Фреймворки. Famworks ( программная платформа)

Термины: Фреймворки. Famworks ( программная платформа)