Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.07.2015 15:26:33

Подключение плагинов из vendor-папки

Не так давно начал работу с Composer, хотелось бы понять вот какие моменты:
1. Как во вьюшках, в HTML корректно и профессионально прописать ссылки на нужные скрипты плагинов? (если указывать /vendor/... - то роутинг "не пускает" - ведь они не в public лежат)
2. Может быть, есть какой-то профессиональный способ указания подобных asset'ов где-то в массиве конфигурации? Чтобы теги со ссылками в <head> разделе формировались автоматически...
3. Если все же вручную прописывать, то может есть какие-то горячие клавиши в phpstorm чтобы быстренько выбрать файл в открывшемся файл-менеджере, и ссылка на него вбилась после позиции курсора... Скорее всего есть что-то подобное?
А то я как-то костыльно лажу по дереву ресурсов слева, жму у файла Copy Reference, потом вставляю в код, укорачивая начальные C:/OpenServer/domains/... wink

В общем, я думаю, ответы на эти вопросы, попутные советы и мысли наверняка будут полезны и интересны многим.
Можно рассмотреть вот на примере установки пакета bootstrap и jquery через композер.
Они в итоге лежат у меня в папках
vendor/components/bootstrap
vendor/components/jquery

Не в сети

#2 16.07.2015 22:37:39

Re: Подключение плагинов из vendor-папки

С помощью Gulp'а можешь копировать файлы в public пупку.   

https://laravel.ru/docs/v5/elixir

http://laravel.com/docs/5.1/elixir

Не в сети

#3 17.07.2015 09:35:33

Re: Подключение плагинов из vendor-папки

Я так понимаю, там все завязано на Node.js
А как быть с проектами для работы на шаред-хостингах?
Ну, а если даже предположить, что gulp будем запускать на локалке а на хостинг просто сливать нужные файлы - то
я честно говоря не представляю, как этот gulp запустить на OpenServer-е локальном. Там вроде тоже нет node.js.. (

Не в сети

#4 17.07.2015 10:45:32

Re: Подключение плагинов из vendor-папки

для ноды есть установщик под винду. вообще шаред - это та ещё засада. некоторые вообще не позволяют настроить public корнем веб-сайта

Не в сети

#5 17.07.2015 11:58:03

Re: Подключение плагинов из vendor-папки

Думаю многие пакеты, которым это нужно, поддерживают команду http://laravel.com/docs/5.1/packages#public-assets

Не в сети

#6 17.07.2015 13:11:45

Re: Подключение плагинов из vendor-папки

С gulp/grunt реализуется сборка программы, а в продакшене эти инструменты не обязательны.  Node инсталлируется отдельно. На Винде, думаю, это не сложно. Если хочешь всё из коробке рассмотри  Laravel Homestead.

http://laravel.com/docs/5.1/homestead

Не в сети

#7 17.07.2015 13:55:08

Re: Подключение плагинов из vendor-папки

Попробовал пример из http://laravel.com/docs/5.1/packages#public-assets - там в примере пути какие-то странные,
по идее же из vendor наоборот должно копироваться в публичную папку с вьюхами...
Попробовал поменять пути на свои, но после артизан-команды vendor:publish он не всю папку скопировал а какой-то один единственный sass-файл. В общем, пока темный лес для меня...)

К Laravel Homestead присматриваюсь, но пока боюсь переходить, т.к. проектов в работе много, и дедлайны сдвинутся, - день-два все равно на "переезд" убьешь. Как всегда - привычное и освоенное "тянет" назад.
Суть сборщиков я понял, минимификация и конкатенация, хеширование имен для подгрузки новых версий в браузеры без рефреша.
Это все круто - и я уже чувствую, что мне это нужно бывает... Но не настолько крупные проекты, наверное еще )) Обхожусь "ручками".

Сейчас хочется больше попробовать сам Laravel изнутри. Т.е. не хочется тратить много времени на освоение сборщиков. Разумеется, попозже я вернусь к этой теме. Именно из этих соображений, хотелось бы простой и банальный пример реализации в Laravel-структуре: на примере  bootstrap3 + jquery - как в простейшем случае их более-менее правильно и без "костылей" подключить к страницам и прописать в layout-ах шаблонов. Создать папку assets внутри папки с вьюхами и туда закинуть css-js?
Ну или может доразвить ту идею с artisan vendor:publish - возможно, я что-то недопонял wink

Не в сети

#8 17.07.2015 15:09:09

Re: Подключение плагинов из vendor-папки

Вопрос в принципе решил:
app/Providers/AppServiceProvider.php

    public function boot()
    {
        $this->publishes([
            base_path('vendor/components')  => public_path('assets'),
        ], 'public');
    }

теперь по команде artisan vendor:publish
содержимое vendor/components (bootstrap и jquery в данном случае) публикуется в public/assets

Аналогично планирую добавить зависимости и для остальных используемых скриптов.
Также настроил Composer для автоматической публикации после обновления версий плагинов
composer.json

        "post-update-cmd": [
            "php artisan optimize",
            "php artisan vendor:publish",
        ],

Не в сети

Подвал раздела