За последние 24 часа нас посетили 17943 программиста и 1574 робота. Сейчас ищут 1294 программиста ...

банчи в laravel 5.5 ?

Тема в разделе "Laravel", создана пользователем mstdmstd, 23 сен 2017.

  1. mstdmstd

    mstdmstd Активный пользователь

    С нами с:
    28 фев 2010
    Сообщения:
    83
    Симпатии:
    1
    Всем привет,

    Есть ли в laravel 5.5 банчи ? Или что-то другое когда контрол, модели, вьюхи пишутся как одна подпрограмма с тем, чтобы можно было бы легко перенести в другое приложение?
    Или как-то можно еще реализовать и стоит ли?

    Спасибо!
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Всё, что есть - описано в документации. Остальное - через дополнительные расширения, например https://nwidart.com/laravel-modules/v2/introduction позволяет похожего функционала добиться.
    --- Добавлено ---
    подпрограмма - наверное, некорректно использовать. Всё-таки подпрограмма, по определению, это процедура или функция
     
  3. mstdmstd

    mstdmstd Активный пользователь

    С нами с:
    28 фев 2010
    Сообщения:
    83
    Симпатии:
    1
    А это статья для какой версии ?

    Имею
    Код (Text):
    1. php artisan --version
    2. Laravel Framework 5.5.3
    3.  
    4.  
    5. php artisan module:make SqlMonitor
    6. [Symfony\Component\Console\Exception\CommandNotFoundException]
    7. There are no commands defined in the "module" namespace.
    8.  
    9.  
    10. php artisan module:list
    11. [Symfony\Component\Console\Exception\CommandNotFoundException]
    12. There are no commands defined in the "module" namespace.
    Изменился формат команд или у меня что-то не установлено ?
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Это не статья, это пакет. Его установить надо сначала, чтоб пользоваться
    --- Добавлено ---
    Там же есть раздел "installation and setup". прочитайте, сделайте.
     
  5. mstdmstd

    mstdmstd Активный пользователь

    С нами с:
    28 фев 2010
    Сообщения:
    83
    Симпатии:
    1
    Спасибо за ссылочку - понемногу разбираюсь, но я не нашел а как правильно подключить мордель таблицы ? Я создал файл Modules/SqlMonitor/SmLine.php
    где SqlMonitor - имя моего модуля а SmLine.php имеет заголовок :
    Код (Text):
    1.  
    2. <?php
    3.  
    4. namespace SqlMonitor;
    5. use Illuminate\Database\Eloquent\Model;
    6. use Validator;
    7. use DB;
    8. use Auth;
    9. use Carbon\Carbon;
    10. class SmLine extends Model
    11. {
    12. protected $table = 'sm_line';
    13. protected $primaryKey = 'id';
    14. ...



    И вызов модели в контроле Modules/SqlMonitor/Http/Controllers/SqlMonitorController.php :
    Код (Text):
    1. <?php
    2.  
    3. namespace Modules\SqlMonitor\Http\Controllers;
    4.  
    5. use DB;
    6. use Auth;
    7. use Illuminate\Http\Request;
    8. use Illuminate\Http\Response;
    9. use Illuminate\Routing\Controller;
    10. use SqlMonitor\SmLine;
    11.  
    12. class SqlMonitorController extends Controller
    13. {
    14. protected $data_strip_tags = true;
    15. protected $clear_doubled_spaces = true;
    16. protected $stripslashes = true;
    17.  
    18. /**
    19. * Display a listing of the resource.
    20. * @return Response
    21. */
    22. public function index()
    23. {
    24.  
    25. $smLineTopValueArray= SmLine::getSmLineTopValueArray(); // Ошибка Class 'SqlMonitor\SmLine' not found
    26. echo '<pre>$smLineTopValueArray::'.print_r($smLineTopValueArray,true).'</pre>';
    27. return view('sqlmonitor::index');
    28. }
    В чем ошибка и как правильно ?
     
  6. mstdmstd

    mstdmstd Активный пользователь

    С нами с:
    28 фев 2010
    Сообщения:
    83
    Симпатии:
    1
    По-прежнему ищу решение.
    В доке по ссылке я примеров не нашел - не очень понятно как вообще это делать
    А не подскажите есть ли какие полезные модули сделанные с использованием этого laravel-modules с моделями баз?
    Посмотрел бы как как примеры...
    google тут плохой помошник - мног всякого находит...
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Ну поскольку Laravel-modules стороннее расширение, пакеты разработчики делают обычно без него. Но вашу проблему он решает на отлично. Чтобы классы грузились, надо добавить папку в конфиг автозагрузчика в composer.json основного проекта, но об этом есть в доке на первой же странице:
    Код (Text):
    1.  
    2. "psr-4": {
    3.     "App\\": "app/",
    4.     "Modules\\": "Modules/"
    5. },
    После этого всё прекрасно заработало
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
  9. mstdmstd

    mstdmstd Активный пользователь

    С нами с:
    28 фев 2010
    Сообщения:
    83
    Симпатии:
    1
    Да для этого модуля нужна как минимум 1 служебная таблица и из чего :
    1) а нет ли у Laravel-modules модулей тригеров при регистрации/удаления этого модуля? Было бы полезно для создания/удаления этих таблиц.
    2) А нет ли удобной альтернативы db-таблицам ? Нужно сохранять длинную строку и 1-2 поле(булево и дата). С возможностью считывания и фильтром. Поскольку модуль делается
    для работы с sql-запросами приложения не очень удобно что и сам он будет генерить новые sql-запросы.
     
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    У модуля есть ServiceProvider, который запускается каждый раз при загрузке модуля, можно поставить создание таблиц. Плюс у модуля могут быть свои миграции, где обычно и создаются таблицы. На удаление - нет, нету, надо руками.
    Если надо фильтровать, то, ИМХО, DB - лучший вариант. А так, вроде Laravel из коробки умеет работать с несколькими no-sql хранилищами. У меня такого опыта нету.
     
  11. mstdmstd

    mstdmstd Активный пользователь

    С нами с:
    28 фев 2010
    Сообщения:
    83
    Симпатии:
    1
    Спасибо, проясняется
    А еще подскажите мои js,css файлы находятся в подкаталогах Modules/SqlMonitor/Assets/js/sqlmonitor.js/ и
    Modules/SqlMonitor/Assets/css/app.css

    В Modules/SqlMonitor/Resources/views/layouts/master.blade.php :

    Код (Text):
    1. <link rel="stylesheet" href="{{ Module::asset('sqlmonitor:css/app.css') }}" />
    2. ...
    3. <script src="{{ Module::asset('sqlmonitor:js/sqlmonitor.js?dt='.$dtparam) }}"></script>

    Чтобы их перенаправить в public я вконсоле выполнял:

    Код (Text):
    1. php artisan vendor:publish --provider="Modules\SqlMonitor"
    и получал:
    Код (Text):
    1. Publishing complete.
    но мои файлы в public не переноcятся. Как правильно ?
     
  12. Васяня

    Васяня Активный пользователь

    С нами с:
    2 окт 2016
    Сообщения:
    238
    Симпатии:
    32
    Адрес:
    Россия, Приморский край, г. Находка.
    Мне кажется что это не провидер, а неймспейс
    --- Добавлено ---
    Что за пакет используется?