Обновление Symfony Standard Edition
От Symfony 2.0 до Symfony 2.1
Зависимости проекта
Примечание: Вы должны выполнить шаги обновления ниже, чтобы Composer мог успешно сгенерировать файлы автозагрузки.
app/autoload.php
По умолчанию autoload.php выглядит следующим образом (он был значительно упрощён, поскольку автозагрузка библиотек и пакетов, объявленных в вашем файле composer.json, автоматически управляется автозагрузчиком Composer):
<?php
use Doctrine\Common\Annotations\AnnotationRegistry;
$loader = include DIR.'/../vendor/autoload.php';
// intl if (!function_exists('intl_get_error_code')) { require_once DIR.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
$loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
}
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;
app/config/config.yml
Параметр framework.charset должен быть удалён. Если вы не используете UTF-8 для своего приложения, вместо этого переопределите метод getCharset() в своём классе AppKernel: class AppKernel extends Kernel { public function getCharset() { return 'ISO-8859-1'; }
// ...
}
Возможно, вы захотите добавить новый параметр strict_requirements в framework.router (это позволяет избежать фатальных ошибок в рабочей среде, когда ссылку невозможно создать): framework: router: strict_requirements: "%kernel.debug%"
Вы даже можете отключить проверку требований в рабочей среде с помощью null, так как вы должны знать, что параметры для генерации URL всегда проходят проверку требований, например, путём предварительной проверки. Это также повышает производительность. Смотрите config_prod.yml.
~
означает null в YAML):
framework:
session: ~jms_security_extra
была перемещена в файл конфигурации security.yml
.app/config/config_dev.yml
Добавлен пример того, как отправлять все электронные письма на уникальный адрес:
#swiftmailer:
# delivery_address: me@example.com
app/config/config_test.yml
Параметр storage_id
должен быть изменён на session.storage.mock_file
:
framework:
session:
storage_id: session.storage.mock_file
app/config/parameters.ini
Файл был преобразован в YAML-файл, который читается следующим образом:
parameters:
database_driver: pdo_mysql
database_host: localhost
database_port: ~
database_name: symfony
database_user: root
database_password: ~
mailer_transport: smtp
mailer_host: localhost
mailer_user: ~
mailer_password: ~
locale: en
secret: ThisTokenIsNotSoSecretChangeIt
Обратите внимание, что если вы преобразуете файл параметров в YAML, вы также должны изменить его ссылку в app/config/config.yml
.
app/config/routing_dev.yml
Запись _assetic
удалена:
#_assetic:
# resource: .
# type: assetic
app/config/security.yml
В разделе security.access_control
было изменено правило по умолчанию для внутренних маршрутов:
security:
access_control:
#- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
В разделе security.providers
пример in_memory
был обновлён до следующего:
security:
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
app/AppKernel.php
Следующие пакеты были добавлены в список зарегистрированных пакетов по умолчанию:
new JMS\AopBundle\JMSAopBundle(),
new JMS\DiExtraBundle\JMSDiExtraBundle($this),
Вы также должны переименовать DoctrineBundle с:
new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
на:
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle()
web/app.php
Теперь файл web/app.php
по умолчанию читается следующим образом:
<?php
use Symfony\Component\ClassLoader\ApcClassLoader;
use Symfony\Component\HttpFoundation\Request;
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
// Use APC for autoloading to improve performance.
// Change 'sf2' to a unique prefix in order to prevent cache key conflicts
// with other applications also using APC.
/*
$loader = new ApcClassLoader('sf2', $loader);
$loader->register(true);
*/
require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
web/app_dev.php
Теперь файл web/app_dev.php
по умолчанию читается следующим образом:
<?php
use Symfony\Component\HttpFoundation\Request;
// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !in_array(@$_SERVER['REMOTE_ADDR'], array(
'127.0.0.1',
'::1',
))
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once DIR.'/../app/AppKernel.php';
$kernel = new AppKernel('dev', true); $kernel->loadClassCache(); $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response);
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )