微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使PHP更加Javatized(又名强类型,更强大)?

我真的很喜欢 PHP,因为:
_易于开发Web应用程序(您可以在10分钟内设置LAMP并准备好了)
_ 简单易学
_易于部署(您只需要带有PHP模块的Apache)

我真的很喜欢Java,因为:
_它是强类型的

使用Java和Netbeans开发我感到很惊讶.任何时候出现类型不匹配的问题,IDE在开发过程中都会收到警报,而IDE本身就提出了修复建议.

我认为强打字是一种幸福.这是真的:可以包含任何内容PHP数组可以加快您的开发速度,但是您必须花时间查找错误,而在提前做更多工作时,您可以使用IDE为您指出问题.
这让我在重构过程中也更有信心.

所以,我的问题是:是否可以在PHP中使用类型(包括方法的返回值)?
你知道一个项目,一个分支,什么能让我这样做?
它可能只是一个预解析器,它在实际的PHP解析器之前检查一些注释(即public function / * ConfBuilders [] * / getConfBuilders(/ * int * / confId)).
请介绍类型概念的任何内容,因此,在我看来,会使程序更加健壮,并最终更快地实现(现在我认为用Java开发软件比用PHP开发软件更快,这要归功于IDE的帮助).

谢谢,

编辑:
这是我在网上找到的唯一一件事:
http://cstruter.com/blog/44
但我不喜欢它,主要是因为你不能以标准的方式声明对象属性,并确保使脚本的执行速度变慢.我想要一个离线工作的方法,同时开发……一种编译.

有几种方法可以使您的代码更加严格.

>在方法中使用类型提示来限制参数类型.这仅适用于类,接口和数组.见例子:

class Foo { }
class Bar {
    function quux(Foo $f) { }
}

我尽可能地使用类型提示来避免愚蠢的错误,例如传递null或原始值,而对象是期望的.遗憾的是,返回值不是强类型的.

>使用访问限定符:public,protected,private.虽然公共成员可以由外部实体访问,但受保护和私有只能通过相同(基础)类的实例访问.还要考虑使用抽象和最终限定符.
>针对接口而不是类的代码,积极地使用组合和聚合.习惯使用依赖注入.适当时使用众所周知的设计模式.
>熟悉反射和面向方面编程的元素.虽然在AoP领域提供的PHP很少,但它的反射子系统非常好.您可以在doc-block注释中使用@annotations来利用元编程.我经常使用它来注释具有单元测试位置的类.我还有一个ACL的实现,其中控制器方法注释(长话短说)必需的访问级别:

/**
 * @AclActivity('view-services')
 * @AclActivity('edit-services')
 */
public function editServiceAction() { ... }

>最后,不要局限于PHP.阅读其他语言,不仅是主流语言,还有模糊不清的语言 – 这些语言都充满了精彩的想法.查看Lisp,Erlang,Rebol.查找现有语言的不寻常应用程序,例如服务器端JavaScript编程.写你自己的语言.是的,它会很糟糕,但你会学到很多东西.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐