2

Zend_Reflection を使用して、特定のクラスの docblock を読み取ろうとしています。

これが私のコードです

  $r = new Zend_Reflection_Class($class);
  $docblock = $r->getDocblock();

次のような docblock を持つクラスで機能します。

/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Barcode
 * @subpackage Renderer
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: Image.php 23775 2011-03-01 17:25:24Z ralph $
 */

/** @see Zend_Barcode_Renderer_RendererAbstract*/
require_once 'Zend/Barcode/Renderer/RendererAbstract.php';

/**
 * Class for rendering the barcode as image
 *
 * @category   Zend
 * @package    Zend_Barcode
 * @copyright  Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Barcode_Renderer_Image extends Zend_Barcode_Renderer_RendererAbstract

しかし、Doctrine 2エンティティ定義である次のクラスでは機能しません。

<?php
namespace DbEntities\Entity;

/**
 * Class for archived companies
 * 
 * @category DbEntities
 * @package Ycode_DbEntities
 * @copyright Copyright (c) 2012
 * @licence Porprietory Code 
 * @Table(name="Archiveddeal",
 *      indexes={
 *          @index(name="textualIdentifier_idx", columns={"textualIdentifier"}),
 *          @index(name="rank_idx", columns={"rank"}),
 *          @index(name="realunique_idx", columns={"realunique"}),
 *          @index(name="coordinations_idx", columns={"latitude","longitude"})
 *      })
 * @Entity
 * @HumanFriendlyName = "Archived Companies"
 * @author Jim
 */
class Archivedcompany extends \Application_Model_Archivedcompany{

コードの 2 行目で次のエラーがスローされます。

 No valid tag name found within provided docblock line

最初のファイルの $class の値は "Zend_Barcode_Renderer_Image" で、2 番目のファイルの "DbEntities\Entity\Archivedcompany" と "\DbEntities\Entity\Archivedcompany" の両方を試しましたが、同じエラーが返されました。

ZendReflection を混乱させるのが名前空間であるかどうかはわかりません。PHP の Reflection を使用すると、すべてが機能するようです。

 $rc = new ReflectionClass($class);
 $comments = $rc->getDocComment();

どんな助けでも大歓迎です

4

1 に答える 1

2

同様の問題がありました。Windowsの行末があると思います。行末を Windows スタイルから Unix スタイルに変換してみてください。

于 2012-10-23T06:46:50.580 に答える