Cakephp 3.0 在Cakephp 3.x中,从使用composer安装的插件中删除[Username]的最佳实践是什么?
使用composer安装插件时,默认情况下,它会将其放入ROOT/vendor/[username]/[plugin name]。这也会使用如下内容更新ROOT/vendor/cakephp-plugins.phpCakephp 3.0 在Cakephp 3.x中,从使用composer安装的插件中删除[Username]的最佳实践是什么?,cakephp-3.0,Cakephp 3.0,使用composer安装插件时,默认情况下,它会将其放入ROOT/vendor/[username]/[plugin name]。这也会使用如下内容更新ROOT/vendor/cakephp-plugins.php return [ 'plugins' => [ '[UserName]/[PluginName]' => $baseDir . '/vendor/[username]/[plugin-name]/' ] ]; 这显然也使得你的插件的名称空
return [
'plugins' => [
'[UserName]/[PluginName]' => $baseDir . '/vendor/[username]/[plugin-name]/'
]
];
这显然也使得你的插件的名称空间应该是这样的
namespace [Username]\[PluginName]\Controller;
当你做一个重定向(作为一个例子)时,你会用类似于
$this->redirect(['plugin' => '[Username]/[PluginName]', 'controller' => '[Controller]', 'action' => 'index']);
当您引用使用composer安装的插件时,删除[Username]的最佳实践是什么 最佳做法是从插件的composer.json文件中的autoload参数中删除用户名 看起来是这样的:
"autoload": {
"psr-4": {
"Username\\PluginName\\": "src"
}
},
应该是这样的
"autoload": {
"psr-4": {
"PluginName\\": "src"
}
},
最好的做法是不要摆弄它。为什么要这样做呢?如果你最终得到了你不喜欢的URL,那么解决方法就是使用路由将你喜欢的URL映射到插件。@GregSchmidt它与URL无关@ndm如果你不想在每个你想调用插件的地方都使用你的用户名,你可能会这么做。例如
使用UserName\PluginName\Model\Table代码>,当它可以是较短的时,使用PluginName\Model\Table代码>。请注意,如果执行此操作,将导致命名空间冲突。使用大多数现代IDE中的自动完成功能,在use
语句中包含用户名实际上不需要更多的输入。您可能还需要手动移动使用composer安装新插件时创建的所有文件夹,我不知道这会对更新过程产生什么影响。不,不需要。文件vendor/cakephp-plugins.php会处理这个问题,并在使用composer安装时自动创建/更新。