Phi*_*ber 29 php namespaces naming-conventions
在PHP 5.3之前,我曾经将接口/抽象类命名为:
abstract class Framework_Package_Subpackage_Abstract {}
Framework/Package/Subpackage/Abstract.php
interface Framework_Package_Subpackage_Interface {}
Framework/Package/Subpackage/Interface.php
Run Code Online (Sandbox Code Playgroud)
现在使用PHP 5.3并使用命名空间我不能再使用我的约定了,因为interface它abstract是保留的关键字.
namespace Framework\Package\Subpackage;
abstract class Abstract {}
Framework/Package/Subpackage/Abstract.php
namespace Framework\Package\Subpackage;
interface Interface {}
Framework/Package/Subpackage/Interface.php
Run Code Online (Sandbox Code Playgroud)
那么,我应该如何命名我的类/接口呢?
Mik*_*raf 18
当前编码指南"PSR-2"基本上建议您将接口放在一个目录中并合并名称.
例如:
File \Vendor\Foo\Interface.php ===> \Vendor\FooInterface.php.
Run Code Online (Sandbox Code Playgroud)
和使用的例子:
use \Vendor\Foo\Interface; ===> use\Vendor\FooInterface;
Run Code Online (Sandbox Code Playgroud)
请参阅:https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
关于这个问题(摘要和接口),你可以看一下Matthew Weier O'Phinney博客上的帖子"将OOP库和框架迁移到PHP 5.3 " - 它是关于Zend Framework的,以及他们如何在2.0中解决这个问题.
他们注意到的一件事是:
在其他OOP语言中,例如Python,C#,接口通过在接口前面加上大写"I"来表示; 在上面的例子中,我们将有Zend :: View :: IView.
所以,在你的例子中,你会有这样的东西,我想:
namespace Framework\Package\Subpackage;
abstract class ASubpackage {}
Framework/Package/Subpackage/ASubpackage.php
namespace Framework\Package\Subpackage;
interface ISubpackage {}
Framework/Package/Subpackage/ISubpackage.php
Run Code Online (Sandbox Code Playgroud)
你觉得怎么样? (我没有用这种方式测试,但看起来不是一个坏主意?)
| 归档时间: |
|
| 查看次数: |
20583 次 |
| 最近记录: |