laravel — вопросы с ответами

Laravel – это бесплатный фреймворк, который дает возможность выбирать и создавать программы на нем. Такая структура помогает понять, как вы формируете свое программное обеспечение и связываете его с различными интерфейсами прикладных программ (API). Фреймворк представляет собой коллекцию сторонних компонентов вместе с настраиваемой «клейкой» структурой, такой как файлы конфигурации, поставщики услуг, предписанные структуры каталогов и загрузочные приложения. Хорошим примером будет случай, когда разработчик решает скрыть некоторый сложный протокол передачи гипертекста (HTTP) или случай добавления необходимых функций. Итак, теперь встает вопрос, что такое веб-разработка Laravel? Это PHP-фреймворк, созданный с целью написания компьютерного кода, который также прост и дорог. Это широко используемая и современная платформа веб-приложений, которая находится в свободном доступе. Хорошо известно, что веб-разработка Laravel использовалась для создания персонализированного веб-программного обеспечения быстрым и эффективным способом.

Двумя наиболее важными сторонами фреймворка являются повышение скорости и счастья разработчиков. По сути, Laravel – это оборудование для поддержки разработчиков. Его цель –предоставить понятный, простой и красивый код и функции, которые помогают разработчикам быстро изучать, запускать, разрабатывать и писать код, который будет простым, понятным и надежным.

Но на одной лишь структуре все не заканчивается. Laravel предоставляет целую экосистему инструментов для создания и запуска приложений. У вас есть Homestead и Valet для локальной разработки, Forge для управления серверами и Envoyer для расширенного развертывания. И есть набор дополнительных пакетов: Cashier для платежей и подписок, Echo для WebSockets, Scout для поиска, Passport для аутентификации API, Dusk для тестирования внешнего интерфейса, Socialite для входа в социальную сеть, Horizon для мониторинга очередей, Nova для создания панелей администратора, и Spark, чтобы запустить SaaS. Laravel пытается взять на себя всю повторяющуюся работу из заданий разработчиков, чтобы они могли сделать что-то уникальное.

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

Пример кода

Все до сих пор написанное было довольно абстрактными словами. А как же насчет кода, спросите вы? Давайте углубимся в простое приложение на конкретном примере чтобы вы могли увидеть, как на самом деле выполняется повседневная работа с Laravel.

Самое простое действие, которое вы можете сделать в приложении Laravel, – это определить маршрут и возвращать результат каждый раз, когда кто-то посещает этот маршрут.

Необходимые компоненты для работы в Laravel

Все, что мы будем рассматривать в этой статье, возможно выполнить на машинах с Windows, но для этого вам понадобятся десятки страниц пользовательских инструкций и предупреждений. Поэтому примеры здесь и в остальной части статьи будут направлены на разработчиков Unix/Linux/macOS.

Если вы решите обслуживать свой веб-сайт, установив PHP и другие инструменты на локальном компьютере, обслуживать свою среду разработки с виртуальной машины через Vagrant или Docker, или же полагаться на такой инструмент, как MAMP/WAMP/XAMPP, ваша среда разработки должна иметь все перечисленное ниже для обслуживания сайтов Laravel:

  • PHP> = 7.1.3 для Laravel версий 5.6 и 5.7;
  • Расширение OpenSSL PHP;
  • Расширение PDO PHP;
  • PHP расширение Mbstring;
  • Расширение Tokenizer PHP;
  • Расширение XML PHP (Laravel 5.3 и выше);
  • Расширение Ctype PHP (Laravel 5.6 и выше);
  • Расширение JSON PHP (Laravel 5.6 и выше).

Composer

На какой бы машине вы не работали, у вас должен быть установлен Composer. Если вы не знакомы с Composer, это инструмент, который лежит в основе большинства современных разработок PHP. Composer – это менеджер зависимостей для PHP, очень похожий на NPM для Node или RubyGems для Ruby. Но, как и NPM, Composer также является основой многих тестов, загрузки локальных сценариев, сценариев установки и многого другого. Вам понадобится Composer для установки Laravel, обновления Laravel и внесения внешних зависимостей.

Среды локальной разработки

Все, что вам действительно нужно для начала работы, – это возможность запустить PHP. Все остальное уже зависит от ваших личных предпочтений.

Тем не менее, Laravel предлагает два инструмента для локальной разработки: Valet и Homestead. И мы кратко рассмотрим оба варианта. Если вы не уверены, какой из них использовать, мы бы порекомендовали остановиться на Valet и просто немного ознакомиться с Homestead. Тем не менее оба этих инструмента ценны и заслуживают внимания.

Laravel Valet

Если вы хотите использовать встроенный веб-сервер PHP, самый простой вариант – обслуживать каждый сайт с локального URL-адреса. Если вы запускаете php -S localhost:8000 -t public из корневой папки вашего сайта Laravel, встроенный веб-сервер PHP будет обслуживать ваш сайт по адресу http://localhost:8000/. Вы также можете запустить php artisan serve после того, как ваше приложение настроено так, чтобы легко разворачивать эквивалентный сервер.

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

Если вы пользователь Mac (есть также неофициальные вилки для Windows и Linux), Laravel Valet избавит вас от необходимости подключать ваши домены к папкам вашего приложения. Valet устанавливает dnsmasq и серию PHP-скриптов, которые позволяют набирать laravel new myapp && open myapp.test и просто работать. Вам нужно будет установить несколько инструментов с помощью Homebrew, которые вам укажут в документации, но шаги от начальной установки до обслуживания ваших приложений невелики и просты.

Установите Valet и укажите его в одном или нескольких каталогах, где будут жить ваши сайты. Мы запустили valet park из своего каталога ~/Sites, куда мы и положили все свои приложения в разработке. Теперь вы можете просто добавить .test в конец имени каталога и посетить его в своем браузере.

Laravel Homestead

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

Документация Homestead надежна и постоянно обновляется, поэтому вы можете ознакомиться с ней, если хотите углубиться в механику работы этого инструмента.

Существует два способа создания нового проекта Laravel, но оба они запускаются из командной строки. Первый вариант – это глобальная установка инструмента Laravel Installer Tool (с помощью Composer); а второй – это использование функции создания проекта Composer.

Вы можете узнать об обоих вариантах более подробно на уже указанной странице документации по установке, но мы бы порекомендовали воспользоваться Laravel Installer Tool.

Компоненты внешнего интерфейса

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

Mix

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

По своей сути Mix – это всего лишь инструмент в вашем наборе инструментов Webpack. “Mix file”, который вы будете использовать для настройки своих конфигураций, – это просто файл конфигурации Webpack, который находится в корне вашего проекта и называется webpack.mix.js. Тем не менее, конфигурация, которую вы должны установить, намного проще, чем большинство настроек Webpack, и вам придется делать намного меньше работы, чтобы заставить функционировать наиболее распространенные задачи компиляции ресурсов.

Давайте рассмотрим общий пример: запуск Sass для предварительной обработки ваших стилей CSS. В обычной среде Webpack это может выглядеть примерно так:

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

Давайте попробуем выполнить ту же задачу в Mix:

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

Запуск Mix

Поскольку Mix работает в Webpack, вам необходимо настроить несколько инструментов перед его использованием:

  1. Во-первых, вам нужно установить Node.js. Посетите веб-сайт Node, чтобы узнать, как его запустить.
  2. Как только Node (и NPM вместе с ним) будет установлен один раз, вам не придется делать это снова для каждого проекта. Теперь вы готовы установить зависимости этого проекта.
  3. Откройте корневой каталог проекта в своем терминале и запустите npm install для установки необходимых пакетов (Laravel поставляется с файлом package-ready Mix.json для непосредственного управления NPM).

Все готово! Вы можете запустить npm run dev, чтобы инициировать Webpack/Mix один раз, npm run watch, чтобы ознакомиться с соответствующими изменениями файла, или npm run prod, чтобы запустить Mix один раз с производственными настройками (такими как минимизация вывода). Вы также можете запустить npm run watch-poll, если npm run watch не работает в вашей среде, или npm run hot для быстрой замены модуля.

3 ответа
У меня есть проект Laravel в папке public_html. Домен, например, domain.com. Мой файл .htaccess(в папке public_html) выглядит следующим образом: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ public/$1 [L] </IfModule> Существуют следующие маршруты: апи /licens...
.htaccess
http
02 авг. 2016, в 10:24
27 ответов
Позвольте мне сначала начать с того, что я искал ответ на этот вопрос в течение некоторого времени... Я пытаюсь настроить Facebook OAuth для работы с моим приложением, которое разрабатывается локально на моей машине. Все отлично работало с авторизацией в Facebook. Я перешел от использования localhos...
facebook
facebook-graph-api
oauth
laravel-socialite
06 май 2016, в 03:24
18 ответов
У меня есть строка, возвращаемая одному из моих представлений, например: $text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>' Я пытаюсь отобразить его с помощью Blade: {{$text}} Однако вывод представляет собой необработанную строку вместо от...
laravel-5
blade
25 март 2015, в 11:35
26 ответов
Я знаю, что это очень популярный вопрос, но я не смог найти работающее решение для Laravel 5. Я пытался перенести из Codeigniter в течение длительного времени, но этот запутанный процесс установки не дает мне отключиться. Я не хочу запускать виртуальную машину, это просто неудобно при переключении м...
.htaccess
laravel-5
mamp
06 фев. 2015, в 11:56
20 ответов
Я хотел бы создать вспомогательные функции, чтобы избежать повторения кода между представлениями в Laravel 5: view.blade.php <p>Foo Formated text: {{ fooFormatText($text) }}</p> Это в основном функции форматирования текста. Где и как я могу создать файл с этими функциями?...
laravel-5
03 фев. 2015, в 01:29
17 ответов
Я новичок в Laravel. Извините, пожалуйста, вопрос новичка, но как мне найти запись? <?php $user = User::where('email', '=', Input::get('email')); Что я могу сделать здесь, чтобы увидеть, есть ли у $user запись?
eloquent
conditional
laravel-5
23 нояб. 2014, в 22:38
18 ответов
При попытке создания нового проекта laravel в CLI появляется следующая ошибка: Не удалось открыть входной файл: artisan Script php artisan с явным компилятором обрабатывает событие post-install-cmd, возвращенное с ошибкой Я использую последнюю версию XAMPP v3.2.1 с PHP 5.5.15 и с включенным mcryp...
laravel-4
artisan
04 окт. 2014, в 15:14
20 ответов
Я нахожусь на Ubuntu 14.04 и пытаюсь всеми возможными способами установить Laravel безрезультатно. Сообщения об ошибках все, что я пытаюсь. Сейчас я пробую первый метод в документации по ~/.composer/vendor/bin, то есть через установщик Laravel, но он говорит: "Убедитесь, что вы ~/.composer/vendor/b...
path
.bash-profile
18 авг. 2014, в 21:57
23 ответа
В настоящее время я использую приведенный ниже код для вставки данных в таблицу: <?php public function saveDetailsCompany() { $post = Input::All(); $data = new Company; $data->nombre = $post['name']; $data->direccion = $post['address']; $data->telefono = $post['pho...
database
eloquent
13 янв. 2014, в 04:26
13 ответов
Я использую построитель запросов Laravel Eloquent, и у меня есть запрос, где я хочу предложение WHERE для нескольких вещей. Он работает, но он не изящный. Пример: $results = User:: where('this', '=', 1) ->where('that', '=', 1) ->where('this_too', '=', 1) ->where('that_too'...
eloquent
11 окт. 2013, в 19:11
19 ответов
С учетом следующего кода: DB::table('users')->get(); Я хочу получить необработанную строку запроса SQL, которую построил построитель запросов выше, поэтому в этом примере это будет SELECT * FROM users. Как это сделать?
laravel-4
14 авг. 2013, в 16:14
8 ответов
Я бы хотел добавить пользовательский атрибут/свойство в модель Laravel/Eloquent при загрузке, аналогично тому, как это можно сделать с помощью RedBean $model->open(). Например, на данный момент у меня в контроллере есть: public function index() { $sessions = EventSession::all(); foreach (...
eloquent
orm
21 июнь 2013, в 09:39
22 ответа
Я пытаюсь использовать функцию migrate в Laravel 4 на OSX. Однако я получаю следующую ошибку: Laravel requires the Mcrypt PHP extension. Насколько я понимаю, он уже включен (см. Изображение ниже). Что не так, и как я могу это исправить? [IMG_OUR_ID=19.png]...
laravel-4
mcrypt
30 май 2013, в 07:55
8 ответов
Предисловие: я пытаюсь использовать шаблон хранилища в архитектуре MVC с реляционными базами данных. Недавно я начал изучать TDD на PHP, и я понимаю, что моя база данных слишком тесно связана с остальной частью моего приложения. Я читал о репозиториях и использовании контейнера IoC, чтобы "внедрит...
database
repository-pattern
repository
23 апр. 2013, в 20:45
12 ответов
Как выбрать случайную строку с использованием "Красноречивого" или "Свободного" в рамках Laravel? Я знаю, что с помощью SQL вы можете сделать заказ с помощью RAND(). Тем не менее, я хотел бы получить случайную строку без, выполняющую подсчет количества записей перед исходным запросом. Любые идеи?...
eloquent
fluent
17 дек. 2012, в 15:56
Наверх
Меню