2016-12-07 3 views
0

Я работаю над некоторым проектом с конверсией файлов docx to pdf, и я использую общий хост-сервер, у которого нет соединения ssh, только опция для использования - Ftp.Как избежать компоновщика для пакетов php?

Итак, есть возможность извлечь пакет в виде библиотеки без использования композитора, например, phpword, его переносной и может быть в основном скопирован в папку с сервером, но пакеты конвертеров доступны только с composer. Я попытался извлечь необходимые файлы из пакета, но кажется, что они в основном нуждаются в autoloader.php, и только вариант, который я вижу, просто модифицирует исходные файлы для портативного использования.

Есть ли способ, как это сделать проще, если это возможно?

Я новичок с composer, что затрудняет понимание возможности экстракции пакетов для портативного использования.

Любые предложения? Спасибо!

ответ

3

Составитель зависимость

Да, я столкнулся с этой проблемой «композитора», а также. Многим разработчикам, похоже, нравится это по разным причинам, но если вы хотите попробовать небольшой пакет или у вас есть только FTP-доступ, он просто вводит другую зависимость. Для больших фреймворков я могу это понять, но для небольшого фрагмента кода с несколькими классами это бессмысленно.

Пример: Я хотел выводить файл Excel в формате ODS и нашли относительно простой кусок кода, чтобы сделать это:

https://github.com/Lapinator/odsPhpGenerator

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

Последний может быть намного проще, чем вы думаете. Все, что нам нужно, это содержимое файла autoload.php. Этот файл, вероятно, скажет PHP, где можно найти классы пакета, используя функции SPL. Вы можете попробовать написать свой собственный автозагрузчик, но мой пакет должен все свои PHP файлы, так что я просто написал:

require_once('../src/ods.php'); 
require_once('../src/odsDraw.php'); 
require_once('../src/odsFontFace.php'); 
require_once('../src/odsStyle.php'); 
require_once('../src/odsTable.php'); 
require_once('../src/odsTableCell.php'); 
require_once('../src/odsTableColumn.php'); 
require_once('../src/odsTableRow.php'); 

После добавив, что в качестве autoload.php к пакету она работала без использования композитора.

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

+0

Недавно я написал свой собственный файл autoload.php, который был единственным способом заставить пакет работать без используя композитор. Спасибо за ответ. – Ingus

0

Вы можете выполнить команду composer install на вашем компьютере и скопировать все файлы на сервер. vendor содержит все зависимости композитора.

+0

Итак, я попытался установить все пакеты с композитором, и у меня возникли проблемы с классами, которые они не могут быть найдены, и поскольку я включаю класс php path, он говорит, что у меня есть dublicate. Что-то не так с самим композитором или пакетом? – Ingus

+0

Вы должны удалить папку поставщика, затем выполнить 'comper install' и потребовать' vendor/autoload.php' в коде. –

0

Обратите внимание, что Composer НЕ является установщиком библиотеки. Он не должен запускаться на производственном сервере, пока все ждут восстановления сайта после обновления.

Я бы предположил, что хостинговая компания, которая предлагает только FTP-доступ, вероятно, не должна получать ваши деньги (из-за соображений безопасности, ваш пароль передается в ясном тексте, для всех, чтобы читать), но когда дело доходит до Composer, вам не нужен SSH на сервере, только на вашей локальной машине.

Убедитесь, что вы используете ту же версию PHP как локально, так и удаленно, или вы установите библиотеки, которые нельзя использовать с удаленной версией PHP.

+0

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

Смежные вопросы