Я знаком с разработкой ROR. Но недавно начал работать в php zend framework. Это способ увидеть журналы разработки вживую в терминале (в Linux) так же, как и ROR.
RAILS_ENV = развитие
рельсы с
Но в Zend свой терминал
php -S 0.0.0.0:8080 public public / index
Производить логи в производственной среде. Как заставить их разработку любить более детально отслеживать код.
В документации это выглядит так:
if ($ _SERVER [‘APPLICATION_ENV’] == ‘development’) {
error_reporting (E_ALL);
ini_set («display_errors», 1); }
Но покажите сообщение об ошибке в терминале как:
Примечание PHP: неопределенный индекс: APPLICATION_ENV в
/var/www/html/skeleton/public/index.php в строке 7
это немного устал, пожалуйста, предложите выход, спасибо.
В документации предполагается, что вы используете Apache:
По выбору, при использовании Apache, Вы можете использовать
APPLICATION_ENV
установка в вашемVirtualHost
позволить PHP выводить все свои ошибки в браузер. Это может быть полезно при разработке вашего приложения.
Источник: руководство.
Как обсуждено в Другой вопрос, Вы должны иметь возможность запустить свой сервер разработки с определенным APPLICATION_ENV
используя следующую команду:
APPLICATION_ENV=development php -S 0.0.0.0:8080 public public/index
Вы можете просто установить Apache VirtualHost
как сказано в руководство. Поместите следующее в ваш VirtualHost
конфигурации:
<VirtualHost *:80>
ServerName zf2-tutorial.localhost
DocumentRoot /path/to/zf2-tutorial/public
SetEnv APPLICATION_ENV "development"<Directory /path/to/zf2-tutorial/public>
DirectoryIndex index.php
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
И обнови свой hosts
:
127.0.0.1 zf2-tutorial.localhost localhost
Ссылаться на руководство в случае проблем.
Я не буду вести вас через установку этот пакет (вот несколько инструкций), но я приведу два решения для проверки (в вашем коде), включен ли режим разработки.
config/development.config.php
существуетПосле включения режима разработки, содержимое config/development.config.php.dist
должны быть скопированы в config/development.config.php
, В своем коде используйте следующее, чтобы проверить, находитесь ли вы в режиме разработки:
if (file_exists('config/development.config.php')) {
// in default skeleton application. You may have to play with
// __DIR__ if you’ve modified your public/index.php
}
Предположим, что вы хотите проверить, включен ли режим разработки в контроллере / сервисе или другом, что может быть создано фабрикой, реализующей zend-servicemanager
«s FactoryInterface
, Ниже я привожу пример конфигурации приложения, фабрики и сервиса:
config/development.config.php.dist
<?php
return [
'development' => true
];
Application\Service\Factory\ExampleServiceFactory
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
return new ExampleService($container->get('Config'));
}
Application\Service\ExampleService
<?php
// imports, namespace…
class ExampleService
{
protected $dev;
public function __construct(array $config)
{
$this->dev = isset($config['development']) && $config['development'] === true;
}
public function doSomething()
{
if ($this->dev) {
// …
}
}
}
Других решений пока нет …