Как стать автором
Поиск
Написать публикацию
Обновить
24.83

Laravel *

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

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

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

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

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

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

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

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

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

Я постараюсь рассказать, как использовал паттерн Repository в проекте, какие достоинства и недостатки были выявлены, как это повлияло на разработку в целом и какой профит был получен.
Читать дальше →

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

Время на прочтение38 мин
Количество просмотров36K
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.
Читать дальше →

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

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

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

В этой статье я покажу насколько это простая задача для современного PHP!
Читать дальше →

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

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

В этой статье я хочу описать основные функциональные отличия моего пакета sim1984/laravel-firebird от пакета jacquestvanzuydam/laravel-firebird.
Читать дальше →

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

Время на прочтение24 мин
Количество просмотров6.6K
Во время написания примера (позже будет ссылка) веб-приложения на 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.
Читать дальше →

Шаблон Presenter в Laravel

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

Если вы используете Laravel в своем проекте достаточно долго, ваши модели, скорее всего, стали довольно большими. Со временем их становится все труднее поддерживать, т.к. они обрастают новым функционалом. Когда вы пишете код для каждого случая, где используются ваши модели, возникает соблазн "откормить" наши модели до тех пор, пока они не разжиреют.


image


В таких ситуациях мы можем воспользоваться паттерном Декоратор, который позволит нам выделить код, специфичный для каждого случая в отдельный класс. Например, мы можем использовать декораторы для того, чтобы разделить формирование представления для PDF-документа, CSV или ответа API.

Читать дальше →

Laravel 5.3: Подготовка к разработке (для новичков)

Время на прочтение11 мин
Количество просмотров123K
Приветствую тебя, Хабра-сообщество и новички в мире Laravel!

Данная статья написана для новичков в сфере Лары и призвана помочь им в начальной стадии освоения фреймворка.

В статье будут рассмотрены, так сказать, «базовые» пакеты, без которых лично мне трудно работать над каким-либо проектом.

Итак, если Вам интересна тема, прошу под кат.

Laravel 5.3

Читать дальше →

Вышел релиз Laravel 5.3

Время на прочтение4 мин
Количество просмотров20K
Команда Laravel с гордостью объявляет о релизе Laravel 5.3, доступной для всех. Новые возможности версии 5.3 направлены на улучшение скорости разработчика за счет добавления и улучшения функций «из коробки».

Этот релиз будет получать общие обновления в течение шести месяцев, и обновления безопасности в течение одного года. Laravel 5.1 является последней версией LTS, включающей исправления ошибок в течение двух лет, и исправления безопасности в течение трех лет.

Ниже краткий обзор некоторых основных моментов новой 5.3 версии.

image
Читать дальше →

Вышел первый релиз-кандидат Laravel 5.3 RC1

Время на прочтение1 мин
Количество просмотров10K
Доброго времени суток хабровчане. А доброе оно хотя бы потому, что состоялся долгожданный (среди его разработчиков, конечно) релиз Laravel 5.3.

image
Читать дальше →

Отправка и получение SMS с помощью Laravel и Nexmo

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

В этом кратком руководстве от Фила Леггеттера мы рассмотрим, как отправлять и получать SMS в приложении Laravel. Мы реализуем эту возможность, используя Nexmo — платформу облачных коммуникаций, которая предлагает API-интерфейсы для инициализации телефонных номеров, отправки и приема SMS (что мы и будем использовать), а так же для совершения звонков.
Читать дальше →

Держите данные под контролем

Время на прочтение7 мин
Количество просмотров12K
Не секрет, что пользовательским данным доверять нельзя. Поэтому однажды человек и придумал валидацию данных. Ну а я, интереса ради и пользы для, написал свою реализацию валидатора на PHP.
Читать дальше →

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

Пакет-географ – первая рабочая версия

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

Прежде всего хотел бы поблагодарить за более, чем 80 звёзд на GitHub, которые мне дали читатели Хабра по результатам предыдущего поста. И это несмотря на то, что репозиторий был почти пустой, а ссылка была неочевидна. На лицо полезность этого пакета!


Для тех, кто пропустил первый пост, маленькое повторение. Если у Вас в приложении есть что-то вроде:


Читать дальше →

Как мы написали helpdesk (часть 3)

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


В продолжении части 2 и части 1, мы решили написать ещё одну статью, в которой хотим детально рассказать, что произошло за 2 года работы над проектом, чего мы добились, что нового реализовали, почему вообще системы заявок настолько перспективное направление. И конечно номер статьи (3) соответствует номеру версии продукта, о которой ниже пойдёт речь.
Читать дальше →

Запускаем очереди и планировщик Laravel в среде Elastic Beanstalk

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

Официальная документация Laravel достаточно подробно описывает установку веб-приложения и сопутствующих процессов-работников, но что если я хочу развернуть продукт в среде AWS Elastic Beanstalk?


Как оказалось, об этом практически нет статей в Интернете, нет готовых пакетов на Packagist, нет упоминания в документации.


Эта статья не только покажет как можно легко и просто запустить планировщик и обработчик очередей в AWS, но также в очередной раз докажет, что Laravel очень легко расширяется.

Читать дальше →

Deployer — удобный и гибкий деплой приложений

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

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


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

Читать дальше →

Настройка Laravel relationships — подсчет комментариев (вольный перевод)

Время на прочтение2 мин
Количество просмотров13K
Представляю вам вольный перевод статьи "Tweaking Eloquent relations – how to get hasMany relation count efficiently?" с сайта softonsofa.com.

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

Что ж, позвольте мне рассказать вам что мы можем с этим сделать.
Читать дальше →

DevConf::PHP 2016 — заканчивается финальное голосование по докладам секции, успей отдать свой голос до 31 мая

Время на прочтение4 мин
Количество просмотров4.1K
Коллеги, помогите сформировать программу DevConf 2016 — должны остаться только лучшие и интересные доклады.

Голосование продлится до 31 мая, сформируем программу вместе!

Представляем вашему вниманию 13 кандидатов на участие:

— Развитие ветки PHP-7.*
Дмитрий Стогов (Zend,PHPNG)
Я расскажу о внутреннем устройсве PHP-7.0, изменениях готовящихся в PHP-7.1 и планах на PHP-7.2.

Как Badoo перешли на PHP7 и сэкономили $1M
Юрий Насретдинов
Мы сделали это! Несколько сотен наших application-серверов переведены на PHP7 и прекрасно себя чувствуют. Насколько нам известно, это второй переход на PHP7 проекта такого масштаба (после Etsy). В процессе мы нашли несколько очень неприятных багов в системе кеширования байт-кода PHP7, но они исправлены. А теперь — ура! — благая весть для всего PHP-сообщества: PHP7 действительно готов к продакшену, стабилен, потребляет значительно меньше памяти и дает очень хороший прирост производительности. Я расскажу, как мы перешли на PHP7, с какими трудностями столкнулись, как с ними боролись и какие результаты получили.

Создание расширений для PHP с помощью Zephir.
Виктор Большов crocodile2u
Zephir — высокоуровневый ЯП, предназначенный специально для создания PHP-расширений (extensions). Код, написанный на Zephir, транслируется в C, с использованием внутреннего API для расширений PHP, и его можно собрать как свое объектно-ориентированное расширение. Это может быть крайне полезно для оптимизации «узких мест» вашего кода: можно добиться ускорения интенсивных вычислений в разы.
Читать дальше →

Обновление PHP до 7.0.6 может «сломать» ваш код

Время на прочтение2 мин
Количество просмотров19K
Внимание! Будьте осторожны при обновлении PHP до версии 7.0.6! В этой версии был исправлено несколько важных багов, на которые мог неявно полагаться ваш код или код вашего фреймворка.

PHP bugs

Под катом тестовый пример кода, описание изменений и рекомендации, что же делать