[搜]

贴心猫-文档

任意目录运行

  • 任意子目录运行
    • 贴心猫 可以放在web任意子目录下运行
  • 配置文件:/root/cfgs/boot/_paths.php
    • 查看代码
    • 注意:敏感文件不能查看代码,这里查看的代码为度应的样例文件;
  • 配置常量:define('PATH_PROJ', '/peace/myprojects');
    • 这样配置任意子目录,注意前面以/开头,后面不要/;
    • 如果配置在根目录,则设置是空字符串,而不是/

多项目思考

  • 维护思路:
    • 假入我们有多个网站项目(且版本相同),先看看 默认的 文件结构
    • 几个网站 的 imcat / ximps 目录下内容都是一样的,那维护起来,也是N倍的工作量!
    • imcat / ximps 目录能否几个站共用呢?!
    • 能共用!这一节就说说,多个项目怎么公用一些目录;或DIY目录结构。
  • 配置:
    • 上述文件:\_paths.php文件;
    • 专门用于配置项目根目录下的几乎所有目录;
    • 先看看原始的配置:
  // 项目(project): 访问相对根路径:注意:在根目录设置是空字符串,而不是/,非根目录前面以/开头,后面不要/
  define('PATH_PROJ', '/peace/myprojects'); 
  define('PATH_BASE',  PATH_PROJ.'/index.php'); // /index.php, /, /base.php, 

  //dirs&path : DIR_*实体路径; PATH_*访问路径
  define('DIR_ROOT',   DIR_PROJ.'/root');   define('PATH_ROOT',   PATH_PROJ.'/root');  
  define('DIR_IMCAT',  DIR_PROJ.'/imcat');  define('PATH_IMCAT',  PATH_PROJ.'/imcat'); 
  define('DIR_VIEWS',  DIR_PROJ.'/views');  define('PATH_VIEWS',  PATH_PROJ.'/views'); 

  define('DIR_VARS',   DIR_PROJ.DS.'xvars'); define('PATH_VARS',   PATH_PROJ.'/xvars');
  define('DIR_CTPL',   DIR_VARS.'/ctpl');   define('PATH_CTPL',   PATH_VARS.'/ctpl');  
  define('DIR_DTMP',   DIR_VARS.'/dtmp');   define('PATH_DTMP',   PATH_VARS.'/dtmp');  
  define('DIR_HTML',   DIR_PROJ.'/html');   define('PATH_HTML',   PATH_PROJ.'/html');  
  define('DIR_URES',   DIR_PROJ.'/ures');   define('PATH_URES',   PATH_PROJ.'/ures');  

  define('DIR_IMPS',   DIR_PROJ.DS.'ximps'); define('PATH_IMPS',   PATH_PROJ.'/ximps');
  define('DIR_VENDOR', DIR_IMPS.'/vendor'); define('PATH_VENDOR', PATH_IMPS.'/vendor');
  define('DIR_VENDUI', DIR_IMPS.'/vendui'); define('PATH_VENDUI', PATH_IMPS.'/vendui');
  define('DIR_STATIC', DIR_IMPS.'/static'); define('PATH_STATIC', PATH_IMPS.'/static');
  • 部署思路
    • 所以,如果是多个项目公用 imcat / ximps 目录;
      只需配置: DIR_IMCAT, PATH_IMCAT, DIR_IMPS, PATH_IMPS 常量即可。
    • 如果多个项目,都放在站点根目录下:
      则公用 imcat / ximps 目录单独拿出来(也可放在某一站点):
      DIR_IMCAT, DIR_IMPS 设置指向对应实体目录;
      PATH_IMPS 可设置虚拟目录,PATH_IMCAT 不用另外设置(没有用上);
    • 如果多个项目,都放在同一站点不同子目录下:
      则吧公用 imcat / ximps 目录 也放在单独的子目录下,然后设置如上参数指向这个子目录;

极致瘦身

  • 多项目公用 imcat / ximps 目录结构
  /root-projects
    /blog/ 博客
    /blog_xvars/ 博客缓存(可放进/blog目录下,也可这样放出来)
    /house/ 房产
    /corp1_com/ 企业站1
    /corp2_com/ 企业站2
    /share_imcat/ 共用核心类库
    /share_ximps/ 共用第三方类库
  • 配置修改
    • _paths.php 配置类似修改如下:
  define('DIR_IMCAT', dirname(DIR_PROJ).DS.'share_imcat'); 
  define('PATH_IMCAT', dirname(PATH_PROJ).'/share_imcat'); 

  define('DIR_VARS', dirname(DIR_PROJ).DS.'share_ximps'); 
  define('PATH_VARS', dirname(PATH_PROJ).'/share_ximps');

  // PATH_IMCAT : 其实是用不到
  // PATH_* 还可以专门配置一个子域名如:define('PATH_VARS', 'http://img0.*.com/cache/share_ximps'); 

实际应用

  • 贴心猫本地开发
    • 本地开发,即是共用 imcat / ximps 目录;
  • 线上演示站
    • 博客,房产,企业网:部署在同一服务器;
    • v5.0,将设置共用 imcat / ximps 目录;