我有一个关于PHP基本编码标准PSR1的问题。PSR1规则2.3规定:Rule2.3SideEffectsAfileSHOULDdeclarenewsymbols(classes,functions,constants,etc.)andcausenoothersideeffects,oritSHOULDexecutelogicwithsideeffects,butSHOULDNOTdoboth.Thephrase"sideeffects"meansexecutionoflogicnotdirectlyrelatedtodeclaringclasses,functions,constan
我正在尝试利用PHP中的自动加载。我在不同的目录中有各种类,所以我引导自动加载如下:functionautoload_services($class_name){$file='services/'.$class_name.'.php';if(file_exists($file)){require_once($file);}}functionautoload_vos($class_name){$file='vos/'.$class_name.'.php';if(file_exists($file)){require_once($file);}}functionautoload_print
我正在尝试利用PHP中的自动加载。我在不同的目录中有各种类,所以我引导自动加载如下:functionautoload_services($class_name){$file='services/'.$class_name.'.php';if(file_exists($file)){require_once($file);}}functionautoload_vos($class_name){$file='vos/'.$class_name.'.php';if(file_exists($file)){require_once($file);}}functionautoload_print
我知道您可以使用PSR标准来定位文件,或者告诉composer一个目录来扫描类。documentationrecommendsusingthePSR-4标准。Composer还可以选择创建optimizedautoloader,whichbasicallygeneratesafullclassmap。.那么,如果最好的加载方式是使用类映射,为什么还要使用PSR-4?对我来说,保持目录结构是有意义的,因为无论如何这都是一种很好的组织方式。但是,似乎合乎逻辑的选择是在开发机器上使用PSR-4加载,然后在生产环境中使用类映射。这样,您不必在每次创建新类时都重新构建类映射,而是在生产环境中创建
我知道您可以使用PSR标准来定位文件,或者告诉composer一个目录来扫描类。documentationrecommendsusingthePSR-4标准。Composer还可以选择创建optimizedautoloader,whichbasicallygeneratesafullclassmap。.那么,如果最好的加载方式是使用类映射,为什么还要使用PSR-4?对我来说,保持目录结构是有意义的,因为无论如何这都是一种很好的组织方式。但是,似乎合乎逻辑的选择是在开发机器上使用PSR-4加载,然后在生产环境中使用类映射。这样,您不必在每次创建新类时都重新构建类映射,而是在生产环境中创建
我不明白php的PSR-2的这一部分惯例:ThesoftlimitonlinelengthMUSTbe120characters;automatedstylecheckersMUSTwarnbutMUSTNOTerroratthesoftlimit.LinesSHOULDNOTbelongerthan80characters;lineslongerthanthatSHOULDbesplitintomultiplesubsequentlinesofnomorethan80characterseach.我认为“软限制”的意思是“尽量遵守这个限制,但多出几个字符不是问题”。但是后来我读了第二
我不明白php的PSR-2的这一部分惯例:ThesoftlimitonlinelengthMUSTbe120characters;automatedstylecheckersMUSTwarnbutMUSTNOTerroratthesoftlimit.LinesSHOULDNOTbelongerthan80characters;lineslongerthanthatSHOULDbesplitintomultiplesubsequentlinesofnomorethan80characterseach.我认为“软限制”的意思是“尽量遵守这个限制,但多出几个字符不是问题”。但是后来我读了第二
生成bootstrap/compiled.php的记录方法是运行artisan命令:artisan优化artisanoptimize的问题在于它运行composerdump-autoload--optimize,它会在composer_classmap.php文件中扁平化每个PSR-0加载类。如果您使用像Zend这样具有PSR-0自动加载功能的库,则该类映射文件会超过3000行。这对于在每个Web请求上加载来说都不是最佳选择,所以我不想这样做。如何在不填充composer类映射文件的情况下简单地生成compiled.php文件? 最佳答案
PHP的__autoload()(documentation)对我来说非常有趣。这是它的工作原理:你尝试使用一个类,比如newToast_Mitten()(脚注1)该类尚未加载到内存中。PHP收回它的拳头,用一个错误来打击你。它暂停了。“等等,”它说。“定义了一个__autoload()函数。”它运行它。在该函数中,您以某种方式将字符串Toast_Mitten映射到classes/toast_mitten.php并告诉它需要该文件。确实如此。现在类在内存中,您的程序继续运行。内存优势:您只加载需要的类。简洁的好处:您可以停止在任何地方包含这么多文件,而只包含您的自动加载器。如果事情变得
我有自己的小型MVC框架,我使用composerpsr-4自动加载。在我自己的电脑上它工作得很好,但是当我将它部署到我的Ubuntu服务器时它就不再工作了。(它不再找到任何类)我已经尝试了很多东西,但无论我尝试什么都行不通...我尝试过的:Composer转储自动加载Composer更新删除所有内容并重新上传在互联网上搜索了几个小时...:(这是我的composer.json:{"autoload":{"psr-4":{"App\\":"app","Core\\":"core","Magister\\":"vendor/Magister"}},"require":{"philo/lar