Я использовал composer для установки drupal - почему у меня все еще есть неразрешенные зависимости php? - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь построить drupal веб-сервер, используя composer, и мне говорят, что это правильный способ сделать это.

Команда, которую я использовал для установки drupal, такова:

composer create-project drupal-composer/drupal-project:8.x-dev --stability dev mysite --no-interaction

Однако, когда я запускаю свой apache сервер, я получаю кучу ошибок об отсутствующих библиотеках, функциях и т. Д. Я могу решить их, прибегая к помощи каждой из них и устанавливая необходимую библиотеку php - но это не так.т композитор должен сделать это для меня?Согласно composer docs ;

Composer - это инструмент для управления зависимостями в PHP.Он позволяет вам объявить библиотеки, от которых зависит ваш проект, и он будет управлять (устанавливать / обновлять) их для вас.

Когда я перехожу в каталог mysite/vendor, я вижу кучу связанных с drupalпакеты, но, насколько я могу судить, это только drupal зависимости, а не php зависимости.Я что-то здесь упускаю?

1 Ответ

0 голосов
/ 28 декабря 2018

Я думаю, что путаница здесь происходит от слова «библиотеки».

Composer - это инструмент для управления зависимостями , написанный на PHP.

PHP сам по себе полагается наскриптовый движок (изначально Zend , но есть альтернативы, такие как HHVM и т. д. в Facebook), он работает как компилятор и движок времени выполнения и ему нужны «библиотеки» - воспринимайте это как модули или расширения .Эти модули в основном написаны на C, некоторые на C ++.

Наличие ошибок «отсутствующие библиотеки» при запуске Apache не означает, что Composer пропустил какие-либо зависимости от Drupal, это означает, что PHP необходимо правильно настроить или перестроить с отсутствующими модулями.

Существует 3 типа модулей ( членство в расширениях PHP ):

  • Основные модули, которые нельзя исключить из двоичного файла PHP с параметрами компиляции.
  • Основные модули расширения, которые связаны с ядром PHP, но не обязательно включены.
  • Внешние модули, которые не связаны с ядром PHP.Эти модули доступны в репозитории с именем PECL (Библиотека расширений PHP).

Например, если вы хотите ускорить работу Drupal или любых PHP-приложений путем кэширования как PHP-кода, так и пользовательских переменных, вам понадобится некоторый код операции, например APC .Тем не менее, добавление настроек APC в php.ini не будет работать без компиляции соответствующего модуля с помощью PHP.

...