【发布时间】:2023-03-20 04:19:01
【问题描述】:
我正在尝试通过 PhpStorm 的模板系统(文件和代码模板)生成命名空间,但我无法通过 PhpStorm 的文档看到任何帮助/方法。
我想知道是否有一种方法可以根据目录自动定义命名空间:
<?php
// I'm wanting to apply to $namespace
namespace $namespace;
class ${NAME} implements
\Zend\Mail\Mailable
{
/** \Zend\Mail\Factory */
private $factory;
...
}#set( $factory = "factory" ) #set( $this- = "this-" ) #set( $directory = ?)
如果我的目录/文件名是zend/mail/model/notice/send.php,我希望这样生成Zend\Mail\Model\Notice; 的命名空间,我可以通过${NAME} 变量获取类名。
我知道我可以让模板在创建文件时通过对话框请求命名空间,但是我想知道是否可以自动执行此操作?
【问题讨论】:
-
这
namespace ${NAMESPACE};不起作用吗? -
确实如此-但是它要求我在创建对话框中手动输入名称空间,我想我可以通过将 / 替换为 \ 并将每个目录的第一个字母替换为大写来替换路径目录字符。
-
那么如果你创建一个普通的类,它会问你吗?
-
不,除非我指定应该存在命名空间,否则它不会要求我提供命名空间。我可以从要添加的文件的文件目录生成命名空间,但是我不知道如何使用模板变量获取该目录。 @AdamForbis
标签: phpstorm