title: How do I configure Bisna for use with Doctrine 2.1 and Zend Framework 1.11.9? [EDIT - my mistake]
body: <p>I had the previous version of Bisna (before July 22nd), with Doctrine 2.0 working good, according to the instructions in <a href="http://www.zendcasts.com/unit-testing-doctrine-2-entities/2011/02/" rel="noreferrer">http://www.zendcasts.com/unit-testing-doctrine-2-entities/2011/02/</a>.</p>
  
  <p>Yesterday I decided to upgrade to Doctrine 2.1, and had to upgrade Bisna as well, as it was incompatible with Doctrine 2.1.<br>
  So I deleted the entire Doctrine and Bisna directories from my <em>library</em> directory, brought in the new version of each of them, added the autoload init method to the bootstrap, and updated my application.ini file with the relevant changes.</p>
  
  <p>However, when I try to access the application (which worked before fine with Doctrine 2.0 and the previous version of Bisna), I get the following exception:</p>
  
  <pre><code>Notice: Undefined index: annotationRegistry in /home/doron/workspace/myapp/library/Bisna/Doctrine/Container.php on line 569
  </code></pre>
  
  <hr>
  
  <p>Advanced information:<br>
  That line (#569) is: </p>
  
  <pre><code>$this-&gt;startAnnotationRegistry($config['annotationRegistry']);
  </code></pre>
  
  <p>When I print the contents of <code>$config</code>, I get the following:</p>
  
  <pre><code>array
    0 =&gt; 
      array
        'annotationRegistry' =&gt; 
      array
        'annotationFiles' =&gt; 
          array
            0 =&gt; string '/home/doron/workspace/myapp/application/../library/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php' (length=103)
        'adapterClass' =&gt; string 'Doctrine\ORM\Mapping\Driver\AnnotationDriver' (length=44)
        'mappingNamespace' =&gt; string 'MyApp\Entity' (length=13)
        'mappingDirs' =&gt; 
      array
        0 =&gt; string '/home/doron/workspace/myapp/application/../library/MyApp/Entity' (length=65)
        'annotationReaderClass' =&gt; string 'Doctrine\Common\Annotations\AnnotationReader' (length=44)
        'annotationReaderCache' =&gt; string 'default' (length=7)
  </code></pre>
  
  <p>So I can see that the <code>annotationRegistry</code> property is inside an array, where the code expects it to not be inside an array.</p>
  
  <p>But this is not the end, as I get the following exception as well (below the previous exception):</p>
  
  <pre><code>Notice: Undefined index: drivers in /home/doron/workspace/myapp/library/Bisna/Doctrine/Container.php on line 571
  </code></pre>
  
  <p>So I guess something is not configured properly, or there's a bug with Bisna.</p>
  
  <p>This is my application.ini:</p>
  
  <pre><code>[production]
  
  ; --------------------------
  ; PHP Specific Configuration
  ; --------------------------
  phpSettings.display_startup_errors = 0
  phpSettings.display_errors = 0
  phpSettings.date.timezone = "EST"
  
  includePaths.library = APPLICATION_PATH "/../library"
  includePaths.resource = APPLICATION "/../library/Bisna/Application/Resource"
  
  ; ----------------------------------------
  ; Zend Framework Application Configuration
  ; ----------------------------------------
  bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
  bootstrap.class = "Bootstrap"
  
  appnamespace = "Application"
  
  autoloaderNamespaces[] = "MyApp"
  autoloaderNamespaces[] = "Bisna"
  autoloaderNamespaces[] = "Symfony"
  autoloaderNamespaces[] = "Doctrine"
  
  pluginPaths.Bisna\Application\Resource\ = "Bisna/Application/Resource"
  
  ; ------------------------------
  ; Front Controller Configuration
  ; ------------------------------
  resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  resources.frontController.params.displayExceptions = 0
  resources.view[] =
  resources.view.encoding = "UTF-8"
  resources.view.doctype = "XHTML1_STRICT"
  resources.view.contentType = "text/html; charset=UTF-8"
  
  resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
  
  ; ------------------------------------------------------------------------------
  ; Doctrine Class Loader Configuration
  ; ------------------------------------------------------------------------------
  
  resources.doctrine.classLoader.loaderClass = "Doctrine\Common\ClassLoader"
  resources.doctrine.classLoader.loaderFile  = APPLICATION_PATH "/../library/Doctrine/Common/ClassLoader.php"
  
  resources.doctrine.classLoader.loaders.doctrine_common.namespace   = "Doctrine\Common"
  resources.doctrine.classLoader.loaders.doctrine_common.includePath = APPLICATION_PATH "/../library"
  
  resources.doctrine.classLoader.loaders.doctrine_dbal.namespace   = "Doctrine\DBAL"
  resources.doctrine.classLoader.loaders.doctrine_dbal.includePath = APPLICATION_PATH "/../library"
  
  resources.doctrine.classLoader.loaders.doctrine_orm.namespace   = "Doctrine\ORM"
  resources.doctrine.classLoader.loaders.doctrine_orm.includePath = APPLICATION_PATH "/../library"
  
  resources.doctrine.classLoader.loaders.symfony_console.namespace   = "Symfony\Component\Console"
  resources.doctrine.classLoader.loaders.symfony_console.includePath = APPLICATION_PATH "/../library"
  
  resources.doctrine.classLoader.loaders.symfony_yaml.namespace   = "Symfony\Component\Yaml"
  resources.doctrine.classLoader.loaders.symfony_yaml.includePath = APPLICATION_PATH "/../library"
  
  
  ; ------------------------------------------------------------------------------
  ; Doctrine Cache Configuration
  ; ------------------------------------------------------------------------------
  
  ; Points to default cache instance to be used. Optional is only one cache is defined
  resources.doctrine.cache.defaultCacheInstance = default
  
  ; Cache Instance configuration for "default" cache
  resources.doctrine.cache.instances.default.adapterClass = "Doctrine\Common\Cache\MemcacheCache"
  resources.doctrine.cache.instances.default.namespace    = "Application_"
  resources.doctrine.cache.instances.default.options.servers.0.host = localhost
  resources.doctrine.cache.instances.default.options.servers.0.port = 11211
  
  ; ------------------------------------------------------------------------------
  ; Doctrine DBAL Configuration
  ; ------------------------------------------------------------------------------
  
  ; Points to default connection to be used. Optional if only one connection is defined
  resources.doctrine.dbal.defaultConnection = default
  
  ; Database configuration
  ;resources.doctrine.dbal.connections.default.parameters.wrapperClass = ""
  resources.doctrine.dbal.connections.default.parameters.driver   = "pdo_mysql"
  resources.doctrine.dbal.connections.default.parameters.dbname   = "myapp"
  resources.doctrine.dbal.connections.default.parameters.host = "localhost"
  resources.doctrine.dbal.connections.default.parameters.port = 3306
  resources.doctrine.dbal.connections.default.parameters.user = "myapp"
  resources.doctrine.dbal.connections.default.parameters.password = "myapp"
  resources.doctrine.dbal.connections.default.parameters.charset = "utf-8"
  resources.doctrine.dbal.connections.default.parameters.driverOptions.1002 = "SET NAMES 'UTF8'"
  
  
  ; ------------------------------------------------------------------------------
  ; Doctrine ORM Configuration
  ; ------------------------------------------------------------------------------
  
  ; Points to default EntityManager to be used. Optional if only one EntityManager is defined
  resources.doctrine.orm.defaultEntityManager = default
  
  ; EntityManager configuration for "default" manager
  resources.doctrine.orm.entityManagers.default.connection     = default
  resources.doctrine.orm.entityManagers.default.proxy.autoGenerateClasses = false
  resources.doctrine.orm.entityManagers.default.proxy.namespace           = "MyApp\Entity\Proxy"
  resources.doctrine.orm.entityManagers.default.proxy.dir                 = APPLICATION_PATH "/../library/MyApp/Entity/Proxy"
  
  resources.doctrine.orm.entityManagers.default.metadataDrivers.annotationRegistry.annotationFiles[]     = APPLICATION_PATH "/../library/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php"
  
  resources.doctrine.orm.entityManagers.default.metadataDrivers.0.adapterClass          = "Doctrine\ORM\Mapping\Driver\AnnotationDriver"
  resources.doctrine.orm.entityManagers.default.metadataDrivers.0.mappingNamespace      = "MyApp\Entity"
  resources.doctrine.orm.entityManagers.default.metadataDrivers.0.mappingDirs[]         = APPLICATION_PATH "/../library/MyApp/Entity"
  resources.doctrine.orm.entityManagers.default.metadataDrivers.0.annotationReaderClass = "Doctrine\Common\Annotations\AnnotationReader"
  resources.doctrine.orm.entityManagers.default.metadataDrivers.0.annotationReaderCache = default
  
  
  [development : production]
  phpSettings.display_startup_errors = 1
  phpSettings.display_errors = 1
  phpSettings.error_reporting = E_ALL | E_STRICT
  resources.frontController.params.displayExceptions = 1
  
  resources.doctrine.cache.instances.default.adapterClass = "Doctrine\Common\Cache\ArrayCache"
  resources.doctrine.cache.instances.default.namespace    = "Application_"
  </code></pre>