StartMVC开发手册

可以快速上手的开发文档

手册目录

自动载入

类库扩展extend

StartMVC具备自动载入的特性,只要遵循一定的规则,类库文件可以按需加载。

自动载入的基本规则就是将类或类库放入extend目录中,要求类名和文件名相同,并且首字母大写,命名空间与目录路径相同。

namespace extend
class ClassA { 
	//code 
}
//extend/ClassA.php


namespace extend\foo;
class ClassB { 
	//code
}
//extend/foo/ClassB.php


只要遵循这个规则,你可以创建任何类库,并实现自动载入。


Composer

StartMVC完全支持Composer,通过修改composer.json文件或Composer命令来管理依赖项并实现自动载入。


自定义函数function

自定义函数分两级:全局函数放在 app/function.php,模块函数放在 app/{模块}/function.php。框架不扫描目录,只加载这两个固定文件,因此加载顺序是确定的。

全局函数在框架引导阶段加载,CLI 与 HTTP 行为一致;模块函数只在进入该模块时加载,访问其他模块不会触发。

// app/function.php —— 全局,所有请求可用
if (!function_exists('format_price')) {
 function format_price($cents)
 {
 return '¥' . number_format($cents / 100, 2);
 }
}


// app/admin/function.php —— 只在访问 admin 模块时加载
if (!function_exists('admin_can')) {
 function admin_can($action)
 {
 return \app\admin\service\Auth::check($action);
 }
}


函数没有命名空间,重复定义是致命错误且无法捕获,所以每个函数都用 function_exists 包裹。函数数量多、或者需要共享状态时,应封装成类放进 extend 目录,按需加载。