如何使php更加强类型健壮?

我真的很喜欢PHP,因为:

_易于开发的Web应用程序(您在10分钟内设置了LAMP,就可以开始使用了)

_ 简单易学

_易于部署(您只需要Apache和PHP模块)

我真的很喜欢Java,因为:

_它是强类型的

我对使用Java和Netbeans进行开发感到惊讶。每当出现类型不匹配的情况时,IDE在开发时都会向我发出警报,并且IDE本身会提出修复建议。

我认为强类型打字是一种幸福的。没错:可以包含任何内容的PHP数组可以加快您的开发速度,但是随后您需要花费时间查找错误,而在进行更多工作之前,您必须拥有可以为您指出问题的IDE。

这也使我在重构过程中也更有信心。

因此,我的问题是:是否可以在PHP中使用类型(包括方法的返回值)?

您是否知道一个项目,一个 fork ,能让我做到的任何事情?

它可能只是一个预解析器,它会在实际的PHP解析器(即public function /*ConfBuilders[]*/ getConfBuilders(/*int*/ confId))之前检查一些注释。

请任何会引入类型概念的事物,使我认为,这将使PHP应用程序更健壮,并最终更快地实现(现在,我认为用Java开发软件比使用PHP开发软件要快得多,这要归功于IDE的帮助)。

谢谢,

编辑:

这是我在网上发现的唯一内容:

http://cstruter.com/blog/44

但是我不喜欢它,主要是因为您不能以标准方式声明对象属性,并且可以确保使脚本的执行速度变慢。我想要一种脱机工作的方法,同时开发...一种编译。

最佳答案

有两种方法可以使您的代码更加严格。

  • 在方法中使用类型提示来限制参数类型。这仅适用于类,接口(interface)和数组。参见示例:

    class Foo { }

    class Bar {

    function quux(Foo $f) { }

    }

我尽我所能使用类型提示,以免自己陷入愚蠢的错误,例如传递null或原始值,而需要对象时。不幸的是,返回值不是强类型的。

  • 使用访问限定符:publicprotectedprivate。尽管公共(public)成员可以由外部实体访问,但 protected 和私有(private)成员只能由相同(基)类的实例访问。还可以考虑使用abstractfinal限定词。
  • 针对接口(interface)而非类编写代码,积极使用合成和聚合。习惯使用依赖项注入(inject)。在适当的地方使用众所周知的设计模式。
  • 熟悉反射和面向方面编程的元素。尽管在AoP领域几乎没有提供PHP,但是它的反射子系统却相当不错。您可以在文档块注释中使用@annotations来利用元编程。我经常使用它来对带有单元测试位置的类进行注释。我也有一个ACL的实现,其中 Controller 方法用必要的访问级别(简而言之)来注释:

    /**

    * @AclActivity('view-services')

    * @AclActivity('edit-services')

    */

    public function editServiceAction() { ... }

  • 最后,不要将自己局限于PHP。了解其他语言,不仅是主流语言,而且还有晦涩的语言-这些语言充满了绝妙的主意。查看Lisp,Erlang,Rebol。查找现有语言的不寻常应用程序,例如服务器端JavaScript编程。写你自己的语言。是的,这很烂,但是您会学到很多。

以上是 如何使php更加强类型健壮? 的全部内容, 来源链接: www.h5w3.com/122618.html

回到顶部