分享
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
文件目录:
index.php
lib/
DB.php
Suan.php
代码:
index.php:
<?php
define('PATH', realpath(dirname(__FILE__)));
spl_autoload_register(function ($class_name) {
require_once PATH . '/lib/' .$class_name . '.php';
});
echo Suan::sum(1,2);
echo PHP_EOL;
?>
lib/DB.php:
<?php
class DB
{
function __construct()
{}
public function conn(){
echo __METHOD__;
}
}
?>
lib/Suan.php:
<?php
class Suan
{
protected function __construct()
{}
public static function sum($a, $b){
return $a + $b;
}
public static function db(){
return (new DB())->conn();
}
}
?>
执行:php -dvld.active=1 index.php
查看opcode发现并不加载DB.php文件
加载了的Suan.php全部编译,但只执行sum方法
PHP的按需加载特性,所以好的架构可以减少不必要的加载文件,从而减少编译的代码:
思考总结:1、对于web请求,很多架构代码,一个文件一个controller包含多个action多个请求的业务逻辑,这无疑是增加了编译代码量。
2、架构可以增加比较薄的一层,减少代码文件的加载和编译
有疑问加站长微信联系(非本文作者))
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1518 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传