Laravel, как вручную установить пакет без композитора

Хотел установить пакет Laravel-Excel (Maatwebsite) вручную без композитора, но не знаю как.

Почему? Потому что у меня есть проект laravel на бесплатном хостинг-сервере, настроенном другим парнем, и я могу получить доступ только с помощью Filezilla для редактирования/загрузки/загрузки кодов.

Если только Filezilla разрешит командную строку, которая может использовать «обновление композитора», тогда будет проще.


person begineeeerrrr    schedule 08.08.2017    source источник
comment
Так что установите composer на свой локальный компьютер и загрузите все, включая папку поставщика, на свой хостинг.   -  person Jonnix    schedule 08.08.2017
comment
проблема в том, что мне не разрешено это делать   -  person begineeeerrrr    schedule 08.08.2017
comment
Что разрешено делать? Вы не можете запустить композитор на компьютере, за которым вы сейчас находитесь?   -  person Jonnix    schedule 08.08.2017
comment
Проект laravel — это все, что находится внутри сервера, и у меня его нет локально. И мне не разрешено загружать все на сервер и перезаливать все это   -  person begineeeerrrr    schedule 08.08.2017


Ответы (7)


  1. Добавьте пакет в папку поставщика. Вы можете загрузить его с помощью filezilla
  2. Добавьте ссылку в \vendor\composer\autoload_namespaces.php
  3. Добавьте ссылку в \vendor\composer\autoload_psr4.php

Источник laravel.io

person user3369343    schedule 02.03.2018
comment
не нужно запускать php artisan vendor:publish в laravel? - person saber tabatabaee yazdi; 18.05.2019

Я получил решение! Я не могу использовать композитор в своей компании из-за защищенной сети. Но я могу скачать ZIP-форму github и установить вручную. Ниже приведен мой пример для HTMLPurifier:

  1. загрузить и извлечь библиотеку mews/purifier в каталог поставщика http://github.com/mewebstudio/Purifier
  2. добавьте строку ниже в vendor/composer/autoload_psr4.php

Это предложение загрузит весь файл из vendor/mews/purifier/src и автоматически загрузит в пространство имен Mews\Purifier\

'Mews\\Purifier\\' => array($vendorDir . '/mews/purifier/src'),

Иногда вам нужно добавить библиотеку в autoload_namespaces.php вместо, пожалуйста, прочитайте в https://getcomposer.org/doc/04-schema.md#autoload

Вы получили Mews\Purifier\Facades\Purifier не найдены, если общедоступная конфигурация до завершения шага 3

$ php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"

  1. добавьте ниже json в vendor/composer/installed.json

Это для истории композитора, провайдеры и псевдонимы будут загружены в config/app/php для регистрации нового провайдера.

{
    "name": "mews/purifier",
    "version": "v2.0.12",
    "type": "library",
    "extra": {
        "laravel": {
            "providers": [
                "Mews\\Purifier\\PurifierServiceProvider"
            ],
            "aliases": {
                "Purifier": "Mews\\Purifier\\Facades\\Purifier"
            }
        }
    },
    "autoload": {
        "psr-4": {
            "Mews\\Purifier\\": "src/"
        }
    }
},

Теперь вы запускаете этот конфиг, тогда vendor/mews/purifier/config будет перемещен в папку config

$ php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"

person Quockhanh Pham    schedule 13.01.2020

загрузите пакет локально, а затем загрузите папку пакета (находится под поставщиком) вместе с обновленным composer.json

person Ali    schedule 08.08.2017
comment
Вчера попробовал ваш метод. Скачиваем пакет, берем папку maatwebsite в вендоре, редактируем config/app, редактируем composer.json, но выдает ошибку - person begineeeerrrr; 08.08.2017
comment
Класс «Maatwebsite\Excel\ExcelServiceProvider» не найден. Я уже поставил Maatwebsite\Excel\ExcelServiceProvider::class у провайдеров в config/app и 'Excel' => Maatwebsite\Excel\Facades\Excel::class у алиасов. И я уже загрузил файл поставщика - person begineeeerrrr; 08.08.2017
comment
все ли пакеты, установленные в настоящее время, работают правильно или все выдают одну и ту же ошибку? - person Ali; 08.08.2017
comment
все другие пакеты, которые в настоящее время установлены, работают отлично, только этот пакет Laravel/Excel не - person begineeeerrrr; 08.08.2017
comment
Я думаю, вам нужно запустить композицию дампа-автозагрузки на вашем локальном компьютере и повторно загрузить всю папку поставщика. - person Ali; 08.08.2017
comment
Выдает ошибку. Класс «Maatwebsite\Excel\ExcelServiceProvider» не найден, сделано именно то, что вы сказали. Вот что я сделал: создаю новый файл проекта laravel, устанавливаю пакет Laravel/Excel (Maatwebsite), редактирую config/app, публикую composer. Хорошо, пока локально сделано. Теперь я загружаю поставщика (maatwebsite), редактирую config/app, редактирую composer.json, загружаю excel.php в config\ - person begineeeerrrr; 08.08.2017
comment
Эй, Али, ты в районе Бейрута? - person abbood; 09.10.2017

это легко сделать, загрузив пакет и установив файлы в папку приложения.

YourProject/app/Laravel-Excel/

а потом добавить путь к composer.json в автозагрузку

"autoload": {
    ...
    "classmap": [
        "database/seeds",
        "database/factories"
        "app/Laravel-Excel"
    ],
    ...
},

Запустите composer dump-autoload

решение относится к этому вопросу

person waleedazam    schedule 27.12.2019

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

Возможно, вам придется запустить автодамп композитора, если вы не стираете кеш.

person connormcwood    schedule 08.08.2017
comment
Проект laravel — это все, что находится внутри сервера, и у меня его нет локально. И мне не разрешено загружать все на сервер и перезаливать все это, как это сделать вручную? - person begineeeerrrr; 08.08.2017
comment
@begineeerrrr Если у вас его нет локально, вы можете создать новый проект laravel, а композитор установить нужный пакет. Найдите его в файле поставщика и загрузите на сайт. Отредактируйте требуемую действующую конфигурацию/приложение, чтобы оно было связано с его ServiceProvider и Facades, а затем повторно загрузите его. Если вы все еще получаете сообщение об ошибке, то требуется composer dumpautoload. Вы должны, если можете, иметь весь проект локально и работать с использованием XAMPP или чего-то подобного, используя vhost. Гораздо лучшая производительность. - person connormcwood; 08.08.2017
comment
Выдает ошибку. Класс «Maatwebsite\Excel\ExcelServiceProvider» не найден, сделано именно то, что вы сказали. Вот что я сделал: создаю новый файл проекта laravel, устанавливаю пакет Laravel/Excel (Maatwebsite), редактирую config/app, публикую composer. Хорошо, пока локально сделано. Теперь я загружаю поставщика (maatwebsite), редактирую config/app, редактирую composer.json, загружаю excel.php в config\ - person begineeeerrrr; 08.08.2017

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

person Mammadli Anar    schedule 21.11.2020

загрузить \vendor\maatwebsite копию \vendor\maatwebsite\excel\src\config\excel.php в \config\excel.php

person ren    schedule 19.02.2019