1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/iamjohnli-bluehouseapp

Клонировать/Скачать
UPGRADE.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 10:25 6586a19

Обновление Symfony Standard Edition

От Symfony 2.0 до Symfony 2.1

  • Зависимости проекта

    • В Symfony 2.1 управление зависимостями проекта осуществляется с помощью Composer:
      • Скрипт bin/vendors можно удалить, так как теперь всю работу выполняет composer.phar (рекомендуется установить его глобально на вашем компьютере).
      • Файл deps необходимо заменить на файл composer.json.
      • Composer автоматически генерирует файл composer.lock, который является эквивалентом сгенерированного файла deps.lock.
    • Загрузите файлы composer.json и composer.lock по умолчанию для Symfony 2.1 и поместите их в основной каталог вашего проекта. Если вы настроили свой файл deps, перенесите добавленные зависимости в файл composer.json (многие пакеты и библиотеки PHP уже доступны в виде пакетов Composer — ищите их на Packagist).
    • Удалите текущий каталог vendor.
    • Наконец, запустите Composer: $ composer.phar install

    Примечание: Вы должны выполнить шаги обновления ниже, чтобы 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.

    • Параметр default_locale теперь является настройкой основной конфигурации framework (в версии 2.0 он находился под framework.session): framework: default_locale: "%locale%"
    • Настройка auto_start под framework.session должна быть удалена, так как она больше не используется (сеанс теперь всегда запускается по требованию). Если auto_start был единственной настройкой под записью framework.session, не удаляйте её полностью, а вместо этого установите её значение на ~ (~ означает null в YAML): framework: session: ~
    • Была добавлена настройка trust_proxy_headers в файле конфигурации по умолчанию (её следует установить в true при установке приложения за обратным прокси-сервером): framework: trust_proxy_headers: false
    • К конфигурации assetic была добавлена пустая запись bundles: assetic: bundles: []
    • Конфигурация swiftmailer по умолчанию теперь имеет настройку spool, настроенную на тип memory, чтобы отложить отправку электронной почты после того, как ответ будет отправлен пользователю (рекомендуется для повышения производительности конечного пользователя): swiftmailer: spool: { type: memory } Конфигурация 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/iamjohnli-bluehouseapp.git
git@api.gitlife.ru:oschina-mirror/iamjohnli-bluehouseapp.git
oschina-mirror
iamjohnli-bluehouseapp
iamjohnli-bluehouseapp
master