Only one or many functions per file in PHP?

我只是一个虾纸丫 提交于 2019-12-08 03:38:17

问题


I have this problem that is really causing me headeches whenever i'm designing my apps in php: I don't know if i should create separete files for each function(e.g.: functions for validating specific forms).

OK, one would possibily argue that this makes no sense because I would have to include each file separetly and this would result in a more slow application maybe?

But I still think it does make sense since for one pageload i doubt that other functions would be used by the script at all, so they must be loaded just for nothing? besides, i don't have to include each function-file manually if the system i design does this dinamically (parsing url vars or such) for me, that is, loading function(-files) exactly when needed. What do you think?


回答1:


The overhead in file includes is minimal, you shouldn't have to worry about it really, considering caching and other things. Of It's more about how you can keep yourself organized and find your stuff quickly.

Honestly, I rarely use functions, I use classes. The rule is usually to have a class per file. But I also have a toolbox file that contains all my global functions.




回答2:


Are you using OO? If so, then you should definitely keep it one class per file, and name the files intelligently...

class Page {
      ...
}

should be findable somewhere like classes/Page.php or includes/Page.class.php or similar.

If you just have a bunch of global functions, you should group them in files, e.g. includes/functions/general.php.

To elaborate, your functions folder may have...

  • array.php
  • string.php
  • form_validation.php
  • request.php
  • general.php
  • html.php

If you are organising your files like this, a better idea is to use a class and make the functions static, e.g. string::isAlphaNum($str). This is a better idea because it only introduces one new term to your global namespace, instead of a bunch of them needlessly.

If you are using PHP 5.3, you could also look at namespaces.




回答3:


You should just make sure that you have APC, xCache or eAccelerator installed. All of them provide cache for compiled PHP bytecode.

It means that once the file has been included it will be stored in memory and ready to use by feature requests. There won't be any need to include files.




回答4:


You will almost certainly see a more significant performance hit through increased disk I/O reads on (many) multiple file includes than for smaller set of files with many functions.

For automatic file includes, wrap functions into suitable classes and use spl_autoload to let PHP handle the include process.



来源:https://stackoverflow.com/questions/4083330/only-one-or-many-functions-per-file-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!