我真的很喜欢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或原始值,而需要对象时。不幸的是,返回值不是强类型的。
使用访问限定符:public,protected,private。尽管公共(public)成员可以由外部实体访问,但 protected 和私有(private)成员只能由相同(基)类的实例访问。还可以考虑使用abstract和final限定词。
针对接口(interface)而非类编写代码,积极使用合成和聚合。习惯使用依赖项注入(inject)。在适当的地方使用众所周知的设计模式。
熟悉反射和面向方面编程的元素。尽管在AoP领域几乎没有提供PHP,但是它的反射子系统却相当不错。您可以在文档块注释中使用@annotations来利用元编程。我经常使用它来对带有单元测试位置的类进行注释。我也有一个ACL的实现,其中 Controller 方法用必要的访问级别(简而言之)来注释:
/**
* @AclActivity('view-services')
* @AclActivity('edit-services')
*/
public function editServiceAction() { ... }
最后,不要将自己局限于PHP。了解其他语言,不仅是主流语言,而且还有晦涩的语言-这些语言充满了绝妙的主意。查看Lisp,Erlang,Rebol。查找现有语言的不寻常应用程序,例如服务器端JavaScript编程。写你自己的语言。是的,这很烂,但是您会学到很多。