Skip to content
Karoly Gossler edited this page Feb 6, 2024 · 13 revisions

From 1.4.x to 1.5.x

  • Create an empty composer.json if it does not already exist.
  • If it already exists, you can install symfony1 with composer require friendsofsymfony1/symfony1 "^1.5".
  • If your application uses doctrine and you have configured doctrine by calling the configureDoctrineEvent or configureDoctrine methods in the ProjectConfiguration file, you must subscribe to doctrine.configure even in the setup method:
class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    // ...

    $this->dispatcher->connect('doctrine.configure', array($this, 'configureDoctrineEvent'));
  }

  public function configureDoctrineEvent(sfEvent $event)
  {
    $manager = $event->getSubject();

    // configure what ever you want on the doctrine manager
    $manager->setAttribute(Doctrine_Core::ATTR_USE_DQL_CALLBACKS, false);
  }
}
  • If you are using doctrine, you can install it using the composer require friendsofsymfony1/doctrine1"^1.5" command. In this case, you need to set the sf_doctrine_dir option in sfConfig, which should point to the vendor/friendsofsymfony1/doctrine1/lib directory.
  • You must remove the sfCoreAutoload::register() call from the ProjectConfiguration.php file and you need to replace the path to the autoloader:
<?php

require_once(__DIR__.'/../vendor/autoload.php');

class ProjectConfiguration extends sfProjectConfiguration {
...

Todo

  • Doctrine => Doctrine_Code (is there an analyzer that can automatically replace the deprecated class?):
/** @deprecated */
class Doctrine extends Doctrine_Core
{

}

maybe: phpstan with https://github.com/phpstan/phpstan-deprecation-rules

Clone this wiki locally