项目目录说明
下载框架项目推荐目录骨架,执行(建议),可看到如下结构:
proj后加上一串加密串目的是为了防止当其路径存放在站点目录下时恶意用户通过工具猜测到项目目录,获取到模板文件及log文件,很多采用开源php框架的站点就常常被发现这个问题,当然最好是将projxxxxx
目录部署到站点根目录的上一级,即站点根目录配置到projxxx/public
目录.
开始开发前前先修改这个目录名、修改完将index.php中CML_APP_PATH
相应修改即可
下面展开对projxxxxxxxxx目录做详细说明:
Application
目录为整个项目的应用存放目录,假定我们有一个项目,该项目下有web
、admin
、api
三个应用,则目录下就有web
、admin
、api
三个应用目录,这边提供默认的web
应用目录。
web
目录为当前项目下的其中一个应用。一个项目下可能有多个应用。每个应用目录都包含了上线所需的所有配置、控制器、模型、视图、静态文件等,迁移的时候直接把应用目录copy走就好了。下线的时候要只要整个应用目录移除。避免了传统的我们上线/下线一个应用得跑到config/controller/model/static/view下分别发布/删除文件。
- web/Controller 为应用控制器存放的路径我们在其下面看到了DefaultController.php文件以下为文件的内容
use Cml\Controller;
class DefaultController extends Controller
{
public function index()
{
echo '欢迎使用cml框架,应用初始化成功';
}
}
关于命名空间及其它参考
web/Lang可选 为web应用语言包存放目录具体请参考 语言包章节
web/Model 可选 为web应用模型文件存放目录 具体请参考
web/Plugin 可选 为web应用插件存放目录 具体请参考 插件章节
web/Service 可选 为web应用服务存放目录
web/View 可选 这web应用存放模板文件目录
cli
proxxx/Config/cli
为通过命令行运行的时候加载的配置文件存放目录
development
为开发环境加载的配置文件存放目录
product为正式环境加载的配置文件存放目录
proxxx/Config/product
为正式环境加载的配置文件存放目录
cli/development/product
这三个目录下都会默认生成一个normal.php
的配置文件,该文件为主配置文件即框架会自动加载,具体请查看 配置文件章节
common.php
common.php
为公用配置文件,也就是无论是cli还是product或者是development的环境都会自动加载的配置文件
plugin.php
route.php
route.php
为路由配置,也是cli/product/development共用 关于路由的使用请参看 路由章节
Store
目录为运行时目录,该目录下存放了系统运行时的一些临时文件,下面做详细说明
Cache
该目录该目录下存放了模板渲染后的缓存及系统缓存使用文件缓存时生成的缓存文件
Data
框架会对数据库的表字段结构缓存在此目录下,所以线上环节如果有修改了主键名,请清空该目录
Logs
系统在开发环境会把警告以下的错误直接显示在控制台,致命错误/异常直接显示在页面上方便开发人员排查。如果是线上环境会将警告及以上的信息记录在此目录下的emergency.log中(底层是调用\Cml\Log::emergency)。按日期分目录存放(如20160801的日志则存放在Runtime/Logs/2016/08/01/emergency.log
中),方便排查,同时使用 \Cml\Log::xxx`相关方法记录的日志会分类存放在该目录下。具体可参考日志