Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Фреймворк вашего дальнейшего веб-приложения

Anna | 31.05.2014 | нет комментариев

Каждый раз когда стоит задача выбора фреймворка для написания нового плана, мы (веб-разработчики) скорей каждого выбираем то, что теснее отлично знаем и непрерывно используем. Мир PHP фреймворков довольно богат и самыми большими игроками являются: CodeIgniterKohanaSymfonyYiiZend Framework. Но я хочу обратить ваше внимание на твердо новейший, а точнее твердо новую ветку лучшего фреймворка, с которым мне приходилось иметь дело. Встречайте, Laravel 4!

Что такое фреймворк

Для начала давайте узнаем что такое фреймворк на самом деле. Согласно википедии, фреймворк это:

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

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

Что такое Laravel

Laravel это комплект наилучших практик из мира PHP разработки. От фреймворка веет единовременно и простотой и профессионализмом, которым владеют его разработчики.

Простота начинается на этапе установки. чай довольно вбить каждого одну строчку в командной строке и дождаться пока все установится:

composer create-project laravel/laravel project_name --prefer-dist

А профессионализм заключается в том, что фреймворк несет в себе и проповедует применение таких паттернов как:

  • DI (Dependency Injection)
  • Repository
  • Observable
  • Singleton
  • Facade
  • Factory
  • Iterator
  • etc…

И Laravel предоставляет вам вероятность применять их весьма результативно. Скажем, Дабы осуществить DI какого-то класса довольно написать:

class UserController extends Controller {
		private $users;

		public function __construct(UserRepository $users) {
    		$this->users = $users;
	    }
}

Laravel сам сделает экземляр класса `UserRepository`. И если в `UserRepository` тоже требуется DI каких-то классов, Laravel так же сделает их экземпляры. (прим. чем классен и пригоден DI и какие еще есть методы реализации его разбирать в данном посте не будем).

Так же стоит упомянуть о том, что Laravel легко расширяем, то есть если вы используете сервер очередей, а Laravel не может трудиться с ним, то вам довольно написать класс (драйвер) для работы с вашим сервером очередей — наследуясь от класса Queue и реализуя интерфейс QueueInterface, а после этого прописать в соответствующем конфиге, что для очередей следует применять такой-то класс.

Одним из самых основных плюсов Laravel является краткость и читабельность его кода. Скажем, Дабы поставить задачу в очередь довольно написать:

Queue::push('SendEmail@send', array('message' => $message));

либо для вызова события:

Event::fire('user.login', array($user));

Коротко, немногословно и изящно, не так ли?

Следует так же упомянуть об ORM в Laravel (какой же фреймворк если в нем нет ORM?), тот, что именуется Eloquent (прим. что в переводе обозначает — речистый, колоритный). И он подлинно оправдывает свое наименование. Дабы предпочесть первую запись из таблицы `users`, для которой у нас есть модель `User` требуется написать:

User::first();

либо Дабы осуществить поиск по пользователям, которые энергичны и отсортировать их по дате регистрации довольно написать следующее:

$users = User::where('is_active', 1)->orderBy('created_at', 'DESC')->get();

Код читается дюже легко и славно.

Возможен, у нас есть таблица `roles` и таблица, которая объединяет роли пользователей и сами роли — `user_roles`. Дабы добавить связь в классе `User` необходимо легко написать 3 строчки:

public function roles() {
    	return $this->belongsToMany(Role::class, 'user_roles');
}

и если вы захотите предпочесть пользователей совместно с их ролями код будет выглядеть дальнейшим образом:

$users = User::with('roles')->get();

И вновь срабатывает wow-результат :)

Для того Дабы ознакомиться со всеми вероятностями и прелестями Eloquent ORM я рекомендую заглянуть в официальную документацию и открыть для себя кучу увлекательных вероятностей (http://laravel.com/docs/eloquent).

Laravel немыслимо комфортен и резок для создания RESTful API, чай в способе контроллера довольно написать:

	$user = User::find(1);

	return $user;

и Laravel преобразит данную модель в JSON. Дюже комфортно. Так же есть другие вероятности для создания RESTful API, которые следует исследовать в официальной документации.

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

Документированность

Еще ни один фреймворк не был столь коротко и ясно документирован как Laravel. Вам необходимо знать как трудиться с очередями? Пожалуйста, заходите в раздел Queues и читаете как трудиться с ними. При чем оказывается, что вариантов работы с ними имеется несколько — выбираете понравившийся либо подходящий к вашей задаче и вперед! Хотите узнать как расширить ядро? Пожалуйста, и на это есть результаты с примерами.

Обо каждому теснее позаботились

Выше я писал как легко применять вероятности фреймворка. И это не только красивый ORM, комфортная отдача данных, но так же немыслимо прекрасный и эластичный роутинг, тестируемость каждого и каждая, шаблонизатор Blade, Schema Builder и т.д. Кстати о тестах, вам огромнее не нужно волноваться о том, что когда вы используете Mock объекты в своих тестах, фреймворк может отработать непредвиденным образом либо не то как вы планировали. Laravel теснее содержит тесты на каждый свой функционал. Вам не необходимо тестировать фреймворк. Тестируйте свой код. Разработчики отнеслись с огромный ответственностью к тестам и работоспособности фреймворка.
Вам не нужно огромнее изумляться тому, что где-то происходит магия и что-то работает не так, как должно быть. Тут работает все именно так, как написано в документации.

Кто стоит за кулисами?

Taylor Otwell

image

Основной разработчик фреймворка. Именно он думает о том как должен выглядеть фреймворк и его API, и решает вводить либо нет тот либо другой функционал.

Phill Sparks

image

Dayle Rees

image

Shawn McCool

image

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB