Что может быть причиной того, что приложение Zend работает на одной машине, но не работает на другой?

У меня есть приложение ZF2, которое работает на нескольких машинах. Все работает Zend Server. Было очень трудно выследить проблему, поэтому, пожалуйста, задавайте вопросы, чтобы помочь приблизиться к проблеме.

Машины, на которых запущено приложение:

  • Zend Server на Osx El Capitan.
  • Zend Server на Centos 7 с использованием виртуального ящика
  • Zend-сервер на Centos 6.

Машина, которая показывает проблему, работает:

  • Zend Server на Centos 6 с использованием Virtual Box.

Такой оператор использования use Zend\Db\Sql\Ddl\Column\DateTime; вызовет ошибку на проблемной машине, но не на работающих машинах. Это потому, что фактическое имя класса Datetime, а не DateTime. Таким образом, изменение T на t избавляет от ошибки.

Есть ли определенная конфигурация php, которую мне не хватает, и поэтому у меня есть эта ошибка? или это проблема Zend Server или операционной системы?

php -v PHP 7.0.11

зенд сервер версии 9.0.1

Другая ошибка, которую я получаю:

При попытке создать apiv1modulenamecontroller (псевдоним: Api\V1\ModuleName\Controller) для этого типа экземпляра была зарегистрирована недопустимая фабрика.

обратите внимание на нижний регистр в apiv1modulenamecontroller


person mehany    schedule 23.12.2016    source источник
comment
Каковы версии PHP на каждом экземпляре?   -  person lemoney    schedule 23.12.2016
comment
Я думал, что все системы Unix чувствительны к регистру   -  person RiggsFolly    schedule 23.12.2016
comment
Именно так устроена операционная система Linux. Я рекомендовал всегда создавать свой код для файловых систем, чувствительных к регистру.   -  person CodeGodie    schedule 23.12.2016
comment
@lemoney каждый экземпляр имеет php 7.* . у пары 7.0 и у одного 7.1   -  person mehany    schedule 23.12.2016
comment
@CodeGodie, который можно опубликовать как ответ. Тогда вопрос может быть закрыт, и вы получите голос...   -  person Wilt    schedule 23.12.2016
comment
@CodeGodie, значит, проблема в операционной системе, в которой я развертываю? Если да, что я могу сделать, чтобы двигаться дальше?   -  person mehany    schedule 24.12.2016


Ответы (1)


Это происходит по замыслу. Именно так устроена операционная система Linux. Как правило, рекомендуется всегда создавать свой код для файловых систем с учетом регистра, чтобы ваш код был готов, если вы когда-нибудь развернете свой код на сервере, который строго следует этому.

person CodeGodie    schedule 23.12.2016
comment
@Wilt, можешь ли ты предложить решение, чтобы двигаться дальше? Я все еще использую ту же операционную систему, что и другая рабочая машина, это не похоже на то, что я использую IIS или другой стек! - person mehany; 24.12.2016
comment
Я думаю, что вы предлагаете, кто-то объяснил здесь - person mehany; 25.12.2016
comment
@mehany Я предлагаю вам придерживаться корпуса, который используется внутри имен классов. Если вы используете верхний и нижний регистр точно так же, как они использовались в исходных именах переменных/классов, у вас больше никогда не возникнет таких проблем. - person Wilt; 05.01.2017