Как стать автором
Обновить
6.93

Laravel *

Бесплатный веб-фреймворк с открытым кодом

Сначала показывать
Порог рейтинга
Уровень сложности

Vue.js для сомневающихся. Все, что нужно знать

Время на прочтение8 мин
Количество просмотров349K


В данной статье речь пойдет о замечательном фронтенд фреймворке Vue.js. Как вы видите, статья называется «Vue.js для сомневающихся», и, если вы до сих пор не могли решиться попробовать Vue.js на практике, то надеюсь, что после прочтения вы все-таки на это решитесь.
Читать дальше →
Всего голосов 43: ↑40 и ↓3+37
Комментарии46

Готовимся к собеседованию по PHP: Всё, что вы хотели узнать об интерфейсах, совместимости сигнатур и не побоялись узнать

Время на прочтение6 мин
Количество просмотров109K
imageИнтерфейсы, впервые появившись в PHP 5, давно уже заняли прочное место в объектно-ориентированной (или всё-таки правильнее «класс-ориентированной»?) части языка.

Казалось бы — что может быть проще интерфейса? "Как бы класс, но и не класс, нельзя создать экземпляр, скорее контракт для будущих классов, содержит в себе заголовки публичных методов" — не правда ли, именно такими словами вы чаще всего отвечаете на собеседовании на дежурный вопрос о том, что такое интерфейс?

Однако не всё так просто, как может показаться начинающему программисту на PHP. Привычные аналогии не работают, руководство по языку вводит вас в заблуждение, в коде таятся неожиданные «подводные камни»…

Три предыдущие части:

Проверьте себя: всё ли вы знаете об интерфейсах в PHP?
Всего голосов 29: ↑27 и ↓2+25
Комментарии41

Laravel подробнее про Homestead

Время на прочтение6 мин
Количество просмотров43K
В официальной документации Laravel написана целая страница о Homestead, но проблема в том, что в ней мало разъяснений зачем это вообще надо. В документации скорее инструкция для тех кто уже знаком и с VirtualBox и с Vagrant и с Linux (Ubuntu). Если Вы из таких — статья не откроет что-то новое, но если Вы прочитали про Homestead в документации и не поняли зачем это вообще надо, или что-то не получилось выполнить по инструкции — в этой статье все будет разжевано подробно.
Читать дальше →
Всего голосов 13: ↑7 и ↓6+1
Комментарии20

Можно ли использовать Laravel для больших Enterprise-решений?

Время на прочтение4 мин
Количество просмотров29K
Это перевод блогозаписи "Can Laravel Be Used for Big Enterprise Apps?"

Вчера я слушал новый эпизод Laravel Podcast с Тейлором Отвелом (Taylor Otwell), Джеффри Веем (Jeffrey Way) и Мэттом Стаффером (Matt Stauffer) – и они (наконец-то!) поговорили про создание больших приложений на Laravel, в последнее время этот вопрос очень часто задают.

Подходит ли Laravel, достаточно ли он взрослый, для больших проектов?


Так как ребята из подкаста не предоставили стенограмму, и прослушивание 50 минут может быть излишним, я решил написать краткое содержание и разбить ответы в более удобном формате Вопрос-Ответ, с ссылками по теме. Поехали!
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии49

«Runn Me!» — говорит нам очередной фреймворк* на PHP. А слышится «Throw Me!». Часть 2

Время на прочтение6 мин
Количество просмотров7.1K
* вообще говоря это пока еще не фреймворк, а просто набор библиотек, фреймворком он станет чуть позже


Не прошло и недели с момента «безумного успеха» (тут мнения немного расходятся, конечно...) первой части нашего повествования, как пришло время выпустить вторую.

Сегодня мы продолжаем путешествие в бездонную глубину библиотеки runn/core будущего фреймворка «Runn Me!». Под катом нам встретятся следующие обитатели бездны:

  • Концепция «мультиисключения» и ее реализация в библиотеке
  • Понятие объекта с внутренней валидацией и эталонная реализация такого объекта
  • Немного заглянем в мир валидаторов и санитайзеров (подробный рассказ о них будет позже)
  • Рассмотрим реализацию объекта с обязательными полями

Вперед!
Всего голосов 19: ↑10 и ↓9+1
Комментарии22

Уточка говорит «кря-кря», коровка говорит «му-му», «Runn Me!» — говорит нам очередной фреймворк* на PHP. Часть 1

Время на прочтение9 мин
Количество просмотров20K
«О нет!», воскликнет читатель, утомлённый разными мини-микро-слим-фреймворками и QueryBuilder-ами и будет прав.

Нет ничего скучнее, чем очередной фреймворк на PHP. Разве что «принципиально новая» CMS или новый дейтинг.



Так зачем же я с упорством, достойным лучшего применения, шагаю по неудобным подводным камням и выставляю на потеху публике суд товарищей своё творение? Заранее зная, что гнев критиков, как мощное цунами обрушится на этот пост и похоронит его на самом днище Хабра?

Не знаю. Как не знал в своё время Колумб, зачем он отплывает от уютных берегов Испании. Надеялся ли он найти путь в Индию? Конечно да. Но не знал точно — доплывёт ли?

Видимо и у программистов на PHP, к которым я вот уже 13 лет себя причисляю, есть такая же внутренняя потребность — выставлять свой код и зажмуривать глаза, ожидая реакции коллег.

Что вас ждет под катом?

  • Открытый исходный код, лицензия LGPL
  • Код, полностью совместимый с PHP 7.0-7.2
  • 100% покрытие юнит-тестами
  • Библиотеки, проверенные временем в реальных проектах (и только проклятая прокрастинация мешала мне опубликовать их ранее!)

Ну и, разумеется, история изобретения очередного велосипеда на костыльном приводе фреймворка*!

* вообще говоря это пока еще не фреймворк, а просто набор библиотек, фреймворком он станет чуть позже

Вперед!
Всего голосов 52: ↑35 и ↓17+18
Комментарии227

Опрос. Какой php-фреймворк вы используете?

Время на прочтение1 мин
Количество просмотров41K
Давно не делали опрос о популярности php-фреймворков. Это, конечно, не волшебный мир JavaScript, где всё меняется каждые полгода-год, но всё-таки и в php тоже постоянно идут изменения.

Выпускаются новые версии, что-то устаревает, что-то входит в моду и т.д. Один фреймворк более «компонентный» и лучше следует принципам SOLID, другой удобен для быстрого старта, третий имеет хорошее комьюнити.

Итак, опрос для тех, кто использует php в своей практике.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии255

Генерируем оглавление для текста

Время на прочтение5 мин
Количество просмотров5.6K
Доброго времени суток! В данной публикации хочу рассказать и расскажу о том, как генерировать оглавление текста на PHP. Почему хаб «Laravel»? Данное решение вылилось в пакет, который можно просто подключить через composer.


Читаем, изучаем
Всего голосов 18: ↑11 и ↓7+4
Комментарии13

NodeJS фреймворк с синтаксисом Laravel

 (и без лапши в коде)

Время на прочтение3 мин
Количество просмотров33K

Пробежавшись по Хабру с удивлением заметил, что этот фреймворк упомянут только в нескольких дайджестах, хотя по моему мнению заслуживает большего внимания. Ниже будет много кода и совсем немного комментариев к нему. И да, друзья! Это моя первая статья на хабре, просьба сильно не быть и не ругать.

Читать дальше →
Всего голосов 39: ↑27 и ↓12+15
Комментарии42

Stacker: что нового?

Время на прочтение2 мин
Количество просмотров9K
Frameworks a lot - he's one!

Привет, Хабр!) Тем, кто пока не имеет представления, советую почитать предыдущую статью А если кратко, то речь пойдет об окружении для локальной веб разработки, которое полностью настроено и готово для запуска большинства фреймворков и cms. Запускайте Symfony, Laravel, Yii2, и другие фреймворки легко! По принципу клонировал -> запустил. Забудьте про постоянные настройки веб сервера и рабочего окружения. Все что вам нужно уже есть в Stacker


Основные лозунги проекта


Их много — он один!
Все просто, не нужно миграций!
Быстро развернул и начал работать!
Хватит настраивать! Пиши код!
Держи зоопарк под Docker, пусть хостовая машина остается чистой!

Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии12

Laravel. Иерархический RBAC для самых маленьких

Время на прочтение9 мин
Количество просмотров34K

Как вам очевидно известно, RBAC — это управление доступом на основе ролей. Все, кто создавали системы чуть большие чем домашняя страничка и чуть меньшие чем Госуслуги, задумывались о том, как разграничить права пользователей.


В этой статье я не буду рассказывать о том, что такое RBAC и почему это хорошо (хотя немного, конечно, расскажу), а познакомлю вас со своей скромной разработкой (h-rbac) и попытаюсь объяснить, почему она по некоторым аспектам лучше, чем известные "монстры".


EDITED:


  • Модуль прекрасно работает с Laravel 5, 6, 7, 8
  • Начиная с v0.4 поддерживаются множественные роли у пользователя.
  • Начиная с Laravel 5.5 нет необходимости регистрировать провайдер в app.php, т.к. используется auto-discovering пакетов.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии26

Краткий обзор нововведений в Laravel 5.4

Время на прочтение6 мин
Количество просмотров24K

image


Сегодня состоялся вход новой версии PHP фреймворка Laravel — 5.4! В новой версии были добавлены такие возможности, как поддержка Markdown-разметки для формирования электронных писем и уведомлений, улучшена поддержка Redis, добавлены новые возможности шаблонизатора Blade и множество других. Но обо всём по порядку.


Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии93

Авторизация в Laravel, через социальные сети (Ulogin). Просто, гибко и эффективно

Время на прочтение4 мин
Количество просмотров19K
Привет, друзья. Хочу сегодня поделится своим взглядом на то, как можно сделать простую и эффективную авторизацию/регистрацию пользователей через любую социальную сеть, используя плагин Ulogin. Почему через этот плагин? Потому что он может избавить разработчика от кучи головной боли, которая возникнет при синхронизации с каждой социальной сетью в отдельности. Плюс вы сможете получить данные из плагина в едином красивом формате.
Читать дальше →
Всего голосов 24: ↑13 и ↓11+2
Комментарии63

Ближайшие события

Laravel Dusk уже близко

Время на прочтение2 мин
Количество просмотров12K

Laravel Dusk


Laravel предоставляет набор вспомогательных методов, которые бывают полезны при написании end-to-end тестов. Они позволяют легко нажать на ссылку, заполнить поля формы и отправить ее. Под капотом Laravel использует компонент Symfony BrowserKit для симуляции поведения веб-браузера. Однако, если в вашем приложении используются JavaScript и AJAX для загрузки страницы, BrowserKit не сможет вам помочь.


Laravel Dusk это новый инструмент, который добавлен в Laravel 5.4 для решения этой проблемы.

Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии12

Пакет-географ: готов к работе

Время на прочтение2 мин
Количество просмотров5.9K
Работа над созданием началась ещё в мае, в июле была неплохая рабочая версия, и вот в декабре у нас:

  • Полное соответствие кодов ISO ISO-3166-1 и ISO-3166-2
  • Возможность выбора системы деления – ISO, FIPS или GeoNames
  • Полное покрытие стран и областей мира русскими переводами
  • Логичная изоляция данных от кода, открываем дорогу SDK на других языках
  • Официальный сайт с документацией на русском языке

Наша цель очень простая – стать стандартной open-source библиотекой географических данных (административных делений и названий). На сегодня ничего подобного нет, каждому разработчику приходится изобретать велосипед заново.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии6

Как не нужно использовать паттерн Repository

Время на прочтение7 мин
Количество просмотров56K
image

Данная статья является неким опытом, который был приобретен в результате весьма неприятной архитектурной ошибки, допущенной мной при длительной разработке проекта на Laravel5.

Я постараюсь рассказать, как использовал паттерн Repository в проекте, какие достоинства и недостатки были выявлены, как это повлияло на разработку в целом и какой профит был получен.
Читать дальше →
Всего голосов 30: ↑24 и ↓6+18
Комментарии100

Создание web приложения на PHP с иcпользованием Firebird и Laravel

Время на прочтение38 мин
Количество просмотров34K
firebird-logo Привет Хабр!

В прошлой статье я рассказывал о пакете для поддержки СУБД Firebird в фреймворке Laravel. На этот раз мы рассмотрим процесс создания web приложения с использованием СУБД Firebird на языке PHP с использованием Laravel.

Обзор драйверов для работы с Firebird


В PHP есть два драйвера для работы с СУБД Firebird:

Обзор расширения Firebird/Interbase


Расширение Firebird/Interbase появилось раньше и является наиболее проверенным. Для установки расширения Firebird/Interbase в конфигурационном файле php.ini необходимо раскомментировать строку

extension=php_interbase.dll

или для UNIX подобных систем строку

extension=php_interbase.so

Это расширение требует, чтобы у вас была установлена клиентская библиотека fbclient.dll/gds32.dll (для UNIX подобных систем fbclient.so) соответствующей разрядности.

Замечание для пользователей Win32/Win64

Для работы этого расширения системной переменной Windows PATH должны быть доступны DLL-файлы fbclient.dll или gds32.dll. Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: fbclient.dll или gds32.dll.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии12

Простой API gateway на базе PHP и Lumen

Время на прочтение7 мин
Количество просмотров41K
Термин «микросервисы» сегодня у всех на слуху – внезапно это стало очень модно, и многие компании объявляют переход на этот архитектурный паттерн даже толком не разобравшись в нём. Впрочем, обсуждение полезности микросервисов оставим за пределами этой статьи.

Традиционно перед коллекцией микросервисов предлагается дополнительный слой – так называемый API gateway, который решает сразу несколько проблем (они будут перечислены позже). На момент написания этой статьи open source реализаций таких gateway почти нет, поэтому я решил написать свой на PHP с использованием микрофреймворка Lumen (часть Laravel).

В этой статье я покажу насколько это простая задача для современного PHP!
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии12

Пакет для работы с СУБД Firebird в Laravel

Время на прочтение8 мин
Количество просмотров7.3K
firebird-logoПривет Хабр! В прошлой статье я рассказывал о том, как можно добавить поддержку Firebird в Laravel. На тот момент я не знал о существовании пакета jacquestvanzuydam/laravel-firebird и добавлял поддержку Firebird с нуля. Сделано это было через модификацию файлов ядра Laravel, за что я был справедливо раскритикован. Посмотрев пакет jacquestvanzuydam/laravel-firebird, я понял, что его возможности меня не устраивают, и решил расширить его.

В этой статье я хочу описать основные функциональные отличия моего пакета sim1984/laravel-firebird от пакета jacquestvanzuydam/laravel-firebird.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Добавление поддержки СУБД Firebird в фреймворк Laravel

Время на прочтение24 мин
Количество просмотров6.5K
Во время написания примера (позже будет ссылка) веб-приложения на PHP с использованием СУБД Firebird возник вопрос выбора фреймворка для разработки с использованием архитектурной модели MVC. Выбор фреймворков под PHP очень большой, но наиболее удобным, простым и легко расширяемым показался Laravel. Однако этот фреймворк не поддерживал из коробки СУБД Firebird. Laravel использует для работы с базой данных драйвера PDO. Поскольку для Firebird существует драйвер PDO, то это натолкнуло меня на мысль, что можно с некоторыми усилиями заставить работать Laravel c Firebird.

Laravel — бесплатный веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC (англ. Model View Controller — модель-представление-контроллер). Laravel – это удобный и легко расширяемый фреймворк для построения ваших веб-приложений. Из коробки фреймворк Laravel поддерживает 4 СУБД: MySQL, Postgres, SQLite и MS SQL Server. В этой статье я расскажу как добавить ещё одну СУБД Firebird.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии14