[DDC-765] \Symfony\Components renamed to \Symfony\Component (singular) ... refactoring unfinished. console cannot be invoked Created: 25/Aug/10  Updated: 30/Aug/10  Resolved: 29/Aug/10

Status: Resolved
Project: Doctrine 2 - ORM
Component/s: Tools
Affects Version/s: 2.0-BETA3
Fix Version/s: 2.0-BETA4
Security Level: All

Type: Bug Priority: Blocker
Reporter: Radomirs Cirskis Assignee: Benjamin Eberlei
Resolution: Fixed Votes: 0
Labels: None
Environment:

winXP, PHP 5.3.3



 Description   

I pulled from github the whole thing, but still stuck with sandbox:

\doctrine\tools\sandbox>php doctrine.php
.PHP Warning: require(doctrine\lib\vendor\Symfony\Components\Console\Helper\Helper.php): failed to open st
ream: No such file or directory in C:\Inetpub\wwwroot\BugTrackerORM\doctrine\lib\vendor\doctrine-common\lib\Doctrine\Common\ClassLoader.php
on line 148
PHP Stack trace:
PHP 1.

{main}

() ..... doctrine\tools\sandbox\doctrine.php:0
PHP 2. require() .... doctrine\tools\sandbox\doctrine.php:21
PHP 3. Doctrine\Common\ClassLoader->loadClass() ... doctrine\lib\vendor\doctrine-common\lib\Doctrine\Common\C
lassLoader.php:0
PHP 4. require() ... doctrine\lib\vendor\doctrine-common\lib\Doctrine\Common\ClassLoader.php:148
PHP 5. Doctrine\Common\ClassLoader->loadClass() C:\Inetpub\wwwroot\BugTrackerORM\doctrine\lib\vendor\doctrine-common\lib\Doctrine\Common\C
lassLoader.php:0

Warning: require(.... doctrine\lib\vendor\Symfony\Components\Console\Helper\Helper.php): failed to open stream:
No such file or directory in.... doctrine\lib\vendor\doctrine-common\lib\Doctrine\Common\ClassLoader.php on lin
e 148

well, it seams that at some stage Symfony\Components got renamed to Symfony\Coponet:

$ git log Component
commit 4a9f36800e3f55bc2cf61033573e1103594b4742
Author: S<C3><A9>bastien HOUZE <sebastienhouze@mbash.livebox.home>
Date: Mon Aug 23 08:21:41 2010 +0200
Symfony/Components renamed into Symfony/Component

When I copied Component into Componets I got:
.PHP Fatal error: Cannot redeclare class Symfony\Component\Console\Helper\Helper in doctrine\lib\vendor\Sy
mfony\Components\Console\Helper\Helper.php on line 21



 Comments   
Comment by Nico Kaiser [ 27/Aug/10 ]

Same for me, even worse, despite git submodule dependencies, the submodules (and their submodules) have different versions of "Components" vs. "Component", so the CLI is broken now.

Comment by Benjamin Eberlei [ 29/Aug/10 ]

Yes this sucks, unfortunately for ORM depending on DBAL Beta 3 we cannot easily change this.

Workaround until the next release of DBAL is uncommenting the following two lines instantiating DBAL Commands from your doctrine.php:

$cli->addCommands(array(
    // DBAL Commands
    //new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(),
    //new \Doctrine\DBAL\Tools\Console\Command\ImportCommand(),

For the next release this week this will be resolved.

Comment by Sherri Flemings [ 30/Aug/10 ]

I came across this issue today. I installed Doctrine via PEAR and had to do a few things to get the sandbox example working, which might help as a workaround until the next release:

1. make sure the PEAR directory is part of your php.ini include path
2. move the Symfony directory from 'PEAR/Doctrine/Symfony' to 'PEAR/Symfony'
3. update the paths to Doctrine & Symfony inside 'tools/sandbox/doctrine.php' & 'tools/sandbox/cli-config.php'

I can now work with the sandbox examples.

As a reference, this is what my cli-config.php source looks like now: (sorry for the unformatted code <pre> tag & [code] weren't recognized.)

<?php

require_once 'Doctrine/Common/ClassLoader.php';

$classLoader = new \Doctrine\Common\ClassLoader('Doctrine\ORM', realpath(_DIR_ . 'Doctrine/ORM'));
$classLoader->register();
$classLoader = new \Doctrine\Common\ClassLoader('Doctrine\DBAL', realpath(_DIR_ . 'Doctrine/DBAL'));
$classLoader->register();
$classLoader = new \Doctrine\Common\ClassLoader('Doctrine\Common', realpath(_DIR_ . 'Doctrine/Common'));
$classLoader->register();
$classLoader = new \Doctrine\Common\ClassLoader('Symfony', realpath(_DIR_ . 'Symfony'));
$classLoader->register();
$classLoader = new \Doctrine\Common\ClassLoader('Entities', _DIR_);
$classLoader->register();
$classLoader = new \Doctrine\Common\ClassLoader('Proxies', _DIR_);
$classLoader->register();

$config = new \Doctrine\ORM\Configuration();
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache);
$driverImpl = $config->newDefaultAnnotationDriver(array(_DIR_."/Entities"));
$config->setMetadataDriverImpl($driverImpl);

$config->setProxyDir(_DIR_ . '/Proxies');
$config->setProxyNamespace('Proxies');

$connectionOptions = array(
'driver' => 'pdo_sqlite',
'path' => 'database.sqlite'
);

$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);

$helpers = array(
'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()),
'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em)
);

Generated at Thu Aug 28 15:13:32 UTC 2014 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.