Uploaded image for project: 'Doctrine 1'
  1. Doctrine 1
  2. DC-98

Generated base class file names get erroneously prefixed

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: 1.2.0-ALPHA2
    • Fix Version/s: 1.2.0-ALPHA3
    • Component/s: Import/Export
    • Labels:
      None
    • Environment:
      Mac OS X 10.6.1 / PHP 5.3.0

      Description

      You can set the boolean option 'classPrefixFiles' to false when generating models to prevent the full class name becoming your file name. However, you this option has no effect on generated base classes. So even if you have set 'classPrefixFiles' to false, the generated files with base classes still contain the base class prefix name in their file name.

      I suggest having a 'baseClassPrefixFiles' options OR following the 'classPrefixFiles' option for base class file names as well.

      This is how the generated file names ended up in my models folder (with 'baseClassPrefix' = 'Base_'; 'classPrefixFiles' = false; 'baseClassesDirectory' = 'Base' and 'baseClassPrefixFiles' = false):

      ./Base/Base_Monkey.php
      ./Monkey.php

      Should be:

      ./Base/Monkey.php
      ./Monkey.php

      1. Builder.php
        44 kB
        BizLogic
      2. Builder.php
        40 kB
        Kyle Spraggs

        Issue Links

          Activity

          Hide
          jwage Jonathan H. Wage added a comment -

          This seems to work for me when I test it.

          Show
          jwage Jonathan H. Wage added a comment - This seems to work for me when I test it.
          Hide
          spiffyjr Kyle Spraggs added a comment -

          baseClassPrefixFiles does absolutely nothing on v1.2.1. I have patched Doctrine_Import_Builder to provide this functionality.

          – ADD around line 132
          /**

          • Whether to use the base class prefix for the filenames too
          • @var boolean
            **/
            protected $_baseClassPrefixFiles = true;

          – MODIFY around line 1004

          • $baseClass['className'] = $this->_baseClassPrefix . $baseClass['className'];

          + if ($this->_baseClassPrefixFiles)

          { + $baseClass['className'] = $this->_baseClassPrefix . $baseClass['className']; +}
          Show
          spiffyjr Kyle Spraggs added a comment - baseClassPrefixFiles does absolutely nothing on v1.2.1. I have patched Doctrine_Import_Builder to provide this functionality. – ADD around line 132 /** Whether to use the base class prefix for the filenames too @var boolean **/ protected $_baseClassPrefixFiles = true; – MODIFY around line 1004 $baseClass ['className'] = $this->_baseClassPrefix . $baseClass ['className'] ; + if ($this->_baseClassPrefixFiles) { + $baseClass['className'] = $this->_baseClassPrefix . $baseClass['className']; +}
          Hide
          spiffyjr Kyle Spraggs added a comment -

          Seems I was a little to hasty. I'm attaching the properly patched file for review.

          Show
          spiffyjr Kyle Spraggs added a comment - Seems I was a little to hasty. I'm attaching the properly patched file for review.
          Hide
          spiffyjr Kyle Spraggs added a comment -

          Adds the option baseClassPrefixFiles (default true) to specify whether or not the base class should include the prefix in the filename.

          Show
          spiffyjr Kyle Spraggs added a comment - Adds the option baseClassPrefixFiles (default true) to specify whether or not the base class should include the prefix in the filename.
          Hide
          BizLogic BizLogic added a comment - - edited

          I can confirm that this is still an issue in 1.2.4 – Doctrine does not respect the $this->_baseClassPrefixFiles because this variable does not exist in ./Doctrine/Import/Builder.php. Additionally some logic is missing for determine whether to use the prefix or not.

          I have attached the patched file.

          Show
          BizLogic BizLogic added a comment - - edited I can confirm that this is still an issue in 1.2.4 – Doctrine does not respect the $this->_baseClassPrefixFiles because this variable does not exist in ./Doctrine/Import/Builder.php. Additionally some logic is missing for determine whether to use the prefix or not. I have attached the patched file.

            People

            • Assignee:
              jwage Jonathan H. Wage
              Reporter:
              prupert Pim Rupert
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: