composer.json 文件
{
"name": "WeiCot Framework",
"description": " WeiCot Framework 1.1 ",
"license": "Public or Private",
"authors": [
{
"name": "jiang",
"email": "1050653098@qq.com"
}
],
"autoload": {
"psr-4": {
"Weicot\\Admin\\Block\\": "app/code/Admin/Block",
"Weicot\\Admin\\Controller\\": "app/code/Admin/Controller",
"Weicot\\Admin\\Data\\": "app/code/Admin/Data",
"Weicot\\Admin\\Model\\": "app/code/Admin/Model",
"Weicot\\Car\\Block\\": "app/code/Car/Block",
"Weicot\\Car\\Controller\\": "app/code/Car/Controller",
"Weicot\\Car\\Data\\": "app/code/Car/Data",
"Weicot\\Car\\Model\\": "app/code/Car/Model",
"Weicot\\Taobao\\Block\\": "app/code/Taobao/Block",
"Weicot\\Taobao\\Controller\\": "app/code/Taobao/Controller",
"Weicot\\Taobao\\Data\\": "app/code/Taobao/Data",
"Weicot\\Taobao\\Model\\": "app/code/Taobao/Model",
"Weicot\\Base\\Block\\": "app/code/Base/Block",
"Weicot\\Base\\Controller\\": "app/code/Base/Controller",
"Weicot\\Base\\Data\\": "app/code/Base/Data",
"Weicot\\Base\\Model\\": "app/code/Base/Model",
"Weicot\\Account\\Block\\": "app/code/Account/Block",
"Weicot\\Account\\Controller\\": "app/code/Account/Controller",
"Weicot\\Account\\Data\\": "app/code/Account/Data",
"Weicot\\Account\\Model\\": "app/code/Account/Model",
"Weicot\\Customer\\Block\\": "app/code/Customer/Block",
"Weicot\\Customer\\Controller\\": "app/code/Customer/Controller",
"Weicot\\Customer\\Data\\": "app/code/Customer/Data",
"Weicot\\Customer\\Model\\": "app/code/Customer/Model",
"Weicot\\Fan\\Block\\": "app/code/Fan/Block",
"Weicot\\Fan\\Controller\\": "app/code/Fan/Controller",
"Weicot\\Fan\\Data\\": "app/code/Fan/Data",
"Weicot\\Fan\\Model\\": "app/code/Fan/Model",
"Weicot\\Tools\\Block\\": "app/code/Tools/Block",
"Weicot\\Tools\\Controller\\": "app/code/Tools/Controller",
"Weicot\\Tools\\Data\\": "app/code/Tools/Data",
"Weicot\\Tools\\Model\\": "app/code/Tools/Model"
},
"classmap": [
"lib/Core",
"lib"
]
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
}
autoload_psr4.php 文件
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Weicot\\Tools\\Model\\' => array($baseDir . '/app/code/Tools/Model'),
'Weicot\\Tools\\Data\\' => array($baseDir . '/app/code/Tools/Data'),
'Weicot\\Tools\\Controller\\' => array($baseDir . '/app/code/Tools/Controller'),
'Weicot\\Tools\\Block\\' => array($baseDir . '/app/code/Tools/Block'),
'Weicot\\Taobao\\Model\\' => array($baseDir . '/app/code/Taobao/Model'),
'Weicot\\Taobao\\Data\\' => array($baseDir . '/app/code/Taobao/Data'),
'Weicot\\Taobao\\Controller\\' => array($baseDir . '/app/code/Taobao/Controller'),
'Weicot\\Taobao\\Block\\' => array($baseDir . '/app/code/Taobao/Block'),
'Weicot\\Fan\\Model\\' => array($baseDir . '/app/code/Fan/Model'),
'Weicot\\Fan\\Data\\' => array($baseDir . '/app/code/Fan/Data'),
'Weicot\\Fan\\Controller\\' => array($baseDir . '/app/code/Fan/Controller'),
'Weicot\\Fan\\Block\\' => array($baseDir . '/app/code/Fan/Block'),
'Weicot\\Customer\\Model\\' => array($baseDir . '/app/code/Customer/Model'),
'Weicot\\Customer\\Data\\' => array($baseDir . '/app/code/Customer/Data'),
'Weicot\\Customer\\Controller\\' => array($baseDir . '/app/code/Customer/Controller'),
'Weicot\\Customer\\Block\\' => array($baseDir . '/app/code/Customer/Block'),
'Weicot\\Car\\Model\\' => array($baseDir . '/app/code/Car/Model'),
'Weicot\\Car\\Data\\' => array($baseDir . '/app/code/Car/Data'),
'Weicot\\Car\\Controller\\' => array($baseDir . '/app/code/Car/Controller'),
'Weicot\\Car\\Block\\' => array($baseDir . '/app/code/Car/Block'),
'Weicot\\Base\\Model\\' => array($baseDir . '/app/code/Base/Model'),
'Weicot\\Base\\Data\\' => array($baseDir . '/app/code/Base/Data'),
'Weicot\\Base\\Controller\\' => array($baseDir . '/app/code/Base/Controller'),
'Weicot\\Base\\Block\\' => array($baseDir . '/app/code/Base/Block'),
'Weicot\\Admin\\Model\\' => array($baseDir . '/app/code/Admin/Model'),
'Weicot\\Admin\\Data\\' => array($baseDir . '/app/code/Admin/Data'),
'Weicot\\Admin\\Controller\\' => array($baseDir . '/app/code/Admin/Controller'),
'Weicot\\Admin\\Block\\' => array($baseDir . '/app/code/Admin/Block'),
'Weicot\\Account\\Model\\' => array($baseDir . '/app/code/Account/Model'),
'Weicot\\Account\\Data\\' => array($baseDir . '/app/code/Account/Data'),
'Weicot\\Account\\Controller\\' => array($baseDir . '/app/code/Account/Controller'),
'Weicot\\Account\\Block\\' => array($baseDir . '/app/code/Account/Block'),
);
autoload_classmap.php 文件
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'AliyunClient' => $baseDir . '/lib/Taobao/aliyun/AliyunClient.php',
'AppipGetRequest' => $baseDir . '/lib/Taobao/top/request/AppipGetRequest.php',
'ApplicationVar' => $baseDir . '/lib/Taobao/top/ApplicationVar.php',
'Area' => $baseDir . '/lib/Taobao/top/domain/Area.php',
'AreasGetRequest' => $baseDir . '/lib/Taobao/top/request/AreasGetRequest.php',
'Autoloader' => $baseDir . '/lib/Taobao/Autoloader.php',
'ClusterTopClient' => $baseDir . '/lib/Taobao/top/ClusterTopClient.php',
'HttpdnsGetRequest' => $baseDir . '/lib/Taobao/top/HttpdnsGetRequest.php',
'IsvTpwdInfo' => $baseDir . '/lib/Taobao/top/domain/IsvTpwdInfo.php',
'KfcKeywordSearchRequest' => $baseDir . '/lib/Taobao/top/request/KfcKeywordSearchRequest.php',
'KfcSearchResult' => $baseDir . '/lib/Taobao/top/domain/KfcSearchResult.php',
'NTbkItem' => $baseDir . '/lib/Taobao/top/domain/NTbkItem.php',
'NTbkShop' => $baseDir . '/lib/Taobao/top/domain/NTbkShop.php',
'RequestCheckUtil' => $baseDir . '/lib/Taobao/top/RequestCheckUtil.php',
'ResultSet' => $baseDir . '/lib/Taobao/top/ResultSet.php',
'SpiUtils' => $baseDir . '/lib/Taobao/top/SpiUtils.php',
'Subtask' => $baseDir . '/lib/Taobao/top/domain/Subtask.php',
'Task' => $baseDir . '/lib/Taobao/top/domain/Task.php',
'TbkEvent' => $baseDir . '/lib/Taobao/top/domain/TbkEvent.php',
'TbkFavorites' => $baseDir . '/lib/Taobao/top/domain/TbkFavorites.php',
'TbkItemGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkItemGetRequest.php',
'TbkItemInfoGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkItemInfoGetRequest.php',
'TbkItemRecommendGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkItemRecommendGetRequest.php',
'TbkShopGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkShopGetRequest.php',
'TbkShopRecommendGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkShopRecommendGetRequest.php',
'TbkUatmEventGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkUatmEventGetRequest.php',
'TbkUatmEventItemGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkUatmEventItemGetRequest.php',
'TbkUatmFavoritesGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkUatmFavoritesGetRequest.php',
'TbkUatmFavoritesItemGetRequest' => $baseDir . '/lib/Taobao/top/request/TbkUatmFavoritesItemGetRequest.php',
'TimeGetRequest' => $baseDir . '/lib/Taobao/top/request/TimeGetRequest.php',
'TopAuthTokenCreateRequest' => $baseDir . '/lib/Taobao/top/request/TopAuthTokenCreateRequest.php',
'TopAuthTokenRefreshRequest' => $baseDir . '/lib/Taobao/top/request/TopAuthTokenRefreshRequest.php',
'TopClient' => $baseDir . '/lib/Taobao/top/TopClient.php',
'TopIpoutGetRequest' => $baseDir . '/lib/Taobao/top/request/TopIpoutGetRequest.php',
'TopLogger' => $baseDir . '/lib/Taobao/top/TopLogger.php',
'TopSecretGetRequest' => $baseDir . '/lib/Taobao/top/request/TopSecretGetRequest.php',
'TopSecretRegisterRequest' => $baseDir . '/lib/Taobao/top/request/TopSecretRegisterRequest.php',
'TopatsResultGetRequest' => $baseDir . '/lib/Taobao/top/request/TopatsResultGetRequest.php',
'TopatsTaskDeleteRequest' => $baseDir . '/lib/Taobao/top/request/TopatsTaskDeleteRequest.php',
'UatmTbkItem' => $baseDir . '/lib/Taobao/top/domain/UatmTbkItem.php',
'Weicor\\Core\\Import' => $baseDir . '/lib/Core/Import.php',
'Weicot\\Core\\Model' => $baseDir . '/lib/Core/Model.php',
'Weicot\\Core\\Acl' => $baseDir . '/lib/Core/Acl.php',
'Weicot\\Core\\Api' => $baseDir . '/lib/Core/Api.php',
'Weicot\\Core\\Block' => $baseDir . '/lib/Core/Block.php',
'Weicot\\Core\\Check' => $baseDir . '/lib/Core/Check.php',
'Weicot\\Core\\Controller' => $baseDir . '/lib/Core/Controller.php',
'Weicot\\Core\\Database' => $baseDir . '/lib/Core/Database.php',
'Weicot\\Core\\Debug' => $baseDir . '/lib/Core/Debug.php',
'Weicot\\Core\\File' => $baseDir . '/lib/Core/File.php',
'Weicot\\Core\\Run' => $baseDir . '/lib/Core/Run.php',
'Weicot\\Core\\Session' => $baseDir . '/lib/Core/Session.php',
'Weicot\\Core\\Setup' => $baseDir . '/lib/Core/Setup.php',
'Weicot\\Core\\View' => $baseDir . '/lib/Core/View.php',
'WirelessShareTpwdCreateRequest' => $baseDir . '/lib/Taobao/top/request/WirelessShareTpwdCreateRequest.php',
);
目录结构
<?php
/**************************************** WeiCot Framework 1.1 版 **************************************************
* <!--
◥◣ ◢◤ ◥◣
◤ ◥◣ ◢◤ █...
▎ ◢█◣ ◥◣◢◤ ◢█ █
◣ ◢◤ ◥◣ ◢◣◥◣ ◢◤.
◥██◤ ◢◤ ◥◣
█ ● ● █
█ 〃 ▄ 〃 █
◥◣ ╚╩╝ ◢◤
◥█▅▃▃ ▃▃▅█◤
◢◤ ◥◣
█ █
◢◤▕ ▎◥◣
▕▃◣◢▅▅▅◣◢▃ 框架作者的博客
?█???█ ?█??? ?█? ?█??█ ?█???█ ??█?? ? ?█??█ ?█???█ ?█?▄?█
?█?█?█ ?█??? ?█? ?█??? ?█???█ ??█?? ▄ ?█??? ?█???█ ?█?█?█
?█▄?▄█ ?█▄▄▄ ▄█▄ ?█▄▄█ ?█▄▄▄█ ??█?? █ ?█▄▄█ ?█▄▄▄█ ?█???█
-->
*/
/***************************************作者及作者信息***************************************************************
* WeiCot Framework 1.1 版
* 作者 ajing 啊江
* 博客 www.weicot.com
* 默认编码 UTF-8
* 邮箱1050653098@qq.com
* 开始日期 2015 05 12/2016 05 24
* Version WeiCot Framework 1.1
***************************************** 文件 及目录 结构 ****************************************************/
/* ** 路由 **
* App Name/Controller Name/Function Name //路由 方法
* http://www.weicot.com/base/index/home //访问路径
* namespace Weicot\Base\Controller\Index::home; //调用方法
* http://www.weicot.com/base/home/
* 如果不存在action 则执行默认的 execute 函数
* 注意 Class Name =File Nmae 类名=文件名
* ** 视图 **
* namespace Weicot\Base\View //基类
* 将模板压入数组
* $this->template[] = array( //可同时设置多个模板
* "blockName" => "Base.Header", //Weicot/Base/Block
* "templatePath" => "Base/View/Header", // Base/View/Header.phtml
* );
*
* ***** 二级调用***
* "blockName" => "Base.Header.Function.Value",
* Weicot/Base/Block::Header->Function(Value)
*
*********目录结构***************************************
├─api //API 接口目录
├─app //应用目录
│ ├─Code //应用代码模块目录
│ │ ├─Account //应用 或者 模块 ┌namespace Weicot\Account;
│ │ │ ├─Block //视图逻辑 必需定义 namespace ─┴use Weicot\Core\Block as Block;
│ │ │ ├─Controller //控制器 必需定义 namespace use Weicot\Core\Controller as Controller;
│ │ │ ├─Data //数据源 数据库操作 必需定义 namespace use Weicot\Core\Data as Data;
│ │ │ ├─Model //业务逻辑 必需定义 namespace use Weicot\Core\Model as Model;
│ │ │ └─View //视图 及静态文件 不应使用 namespace 开头
│ │ └─Base //基础模块
│ │ ├─Block
│ │ ├─Controller
│ │ ├─Data
│ │ ├─Model
│ │ └─View
│ └─etc 配置文件存放的地方
├─── bootstrap.php 加载文件
├─bin 命令行
├─lib 依赖库
│ └─Core 核心依赖库
│ ├─Block.php
│ ├─Controller.php
│ ├─Databse.php //数据库类文件
│ ├─Run.php //Run 控制器文件
│ └─ ...
├─media 媒体文件 比如 CSV IMAGE SQL
│ └─SQL SQL 文件存放的地方
├─skin 样式文件
│ ├─adminhtml 后台样式
│ │ ├─css css 文件
│ │ ├─img img 文件
│ │ └─js js 文件
│ └─frontend 前端样式
│ ├─css
│ ├─img
│ └─js
├─var 临时目录
│ └─cache 缓存目录
└─vendor 依赖库 或第三方库存放的地方
├─composer 依赖库
└─第三方库
*/
/********************************************** 开发规范 **************************************************
* 1.命名空间 开头必需大写 namespace Weicot\Core\Controller
* 2.类名开头大写 用驼峰法命名 class BaseExample{}
* 3.应用文件开头必需大写 /Core
* 4.函数 开头小写 public function setValue()
* 6.以双下划线“__”打头的函数或方法作为魔法方法,例如 __call 和 __autoload;
* N.每个模块必需写出详细的说明文档
* {
* 1.日期
* 2.作者
* 3.功能
* 4.返回类型
*}
**********************************************************************************************************/
/*
*
* * 目录 app/
* use Weicot\App\Note as Note
*/
namespace Weicot\App;
class Note{
public function setNote(){
}
};
//--------------------BUG-----------------------
/**
* WeiCot Framework
* User: ajiang
* WebSite: WWW.WEICOT<COM
* Date: 2016/6/4 0004
* Time: 15:31
*/
namespace A;
class A
{
public function F()
{
}
}
namespace B;
use A\A as A;
class B extends A
{
public function F()
{
$this->F();//爆内存错误 死循环
}
}
$B=new B();
$B->F();
//Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 65488 bytes) in D:\newcov\htdocs\dev\test.php on line 29
/*****************************************新版声明 结束 ************************************************/
/******************************************以下是旧版声明************************************************
* Created by PhpStorm.
* User: jiang
* Date: 2015/05/12
* Time: 22:20
* 开始日期 2015 02 12
* 版本 0.1.2
* www.weicot.com
* 默认编码 UTF-8 : 额外编码 GBK
* code -
* -app
* --Naem 应用名 应用名 第一个字母必需大写
* -Block 视图块 关于视图的和块缓存 /前端 HTML 代码存放的地方
* -Controller 控制器 路由及分发 调用 /不可重复利用代码 集合 前端 视图 及控制器
* -DB 数据库 所有数据库操作集合 /数据操作 函数存放的地方 此处应是 CLASS
* -Model 模型集合 业物逻辑 /业务逻辑存放的地方 【此地方 不应出现 前端代码】 此处只能是 CLASS
* 关于 Model
* 1.Model 下面的 php 文件 第一个字母必需大写 使用驼峰式命名法
* 2.Model 下的 文件名 应该 与其类名保持一致
* 3.必需是CLASS
* 关于命名空间
* 2.
*
****************************** WeicotFramework 的目录结构 2015 05 12 日版本 ***************************************
├─app 应用目录
│ ├─code 代码
│ │ ├─Acma 记账应用
│ │ │ ├─Block 视图块 关于视图的和块缓存
│ │ │ ├─Controller 控制器 路由及分发 调用 不可重复利用代码 集合
│ │ │ ├─DB 数据库 所有数据库操作集合
│ │ │ └─Model 模型集合 业物逻辑
│ │ ├─Base 基础
│ │ │ ├─Block
│ │ │ ├─Controller
│ │ │ ├─DB
│ │ │ └─Model
│ │ ├─Mail 。。。
│ │ │ ├─Block
│ │ │ ├─Controller
│ │ │ ├─DB
│ │ │ └─Model
│ │ └─Test 。。。。
│ │ ├─block
│ │ ├─controller
│ │ ├─db
│ │ └─model
│ └─etc 配置文件 默认名字格式 是 /app/【应用名】 第一个字母必需大写
├─lib 依赖库
│ └─Core 核心加载文件
├─media 媒体
├─skin 样式及图片
│ ├─css
│ ├─img
│ └─js
* *********************************************************************************************************************
*/
转载请注明:(●--●) Hello.My Weicot » Composer WF PHP 框架 加载结构的 主要加载个文件 对比