博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
电子商城实录------项目目录的结构搭建及其说明3
阅读量:7117 次
发布时间:2019-06-28

本文共 3669 字,大约阅读时间需要 12 分钟。

《电子商城实录------项目目录的结构搭建及其说明2》中方法优化

Framework.class.php代码加入static:

<?php

//核心启动类
class Framework{
public static function run(){
echo "hello,wrold!";
}
//初始化方法
private static function init(){
//定义路径常量
define("DS",DIRECTORY_SEPARATOR);
define("ROOT",getcwd().'/');
define("APP_PATH",ROOT.'application'.DS);
define("FRAMEWORK_PATH",ROOT.'framework'.DS);
define("PUBLIC_PATH",ROOT.'public'.DS);
define("GONFIG_PATH",APP_PATH."config".DS);
define("CONTROLLER_PATH",APP_PATH."controllers".DS);
define("MODEL_PATH",APP_PATH."models".DS);
define("VIEW_PATH",APP_PATH.'views'.DS);
define("CORE_PATH",FRAMEWORK_PATH.'core'.DS);
define("DB_PATH",FRAMEWORK_PATH.'databases'.DS);
define("LIB_PATH",FRAMEWORK_PATH.'libraries'.DS);
define("HELPER_PATH",FRAMEWORK_PATH.helpers);
define("UPLOAD_PATH",PUBLIC_PATH.'uploads'.DS);
//获取参数p ,c,a index.php?p=admin&c=goods&a=add
define('PLATFORM', isset($_GET['p'])?$_GET['p']:"admin");
define('CONTROLLER',isset($_GET['c'])?$_GET['c']:"Index");
define('ACTION',isset($_GET['a'])?$_GET['a']:"index");
}
//路由方法
private static function dispatch(){
}
//自动加载
private static function autoload(){
}
}

 

?>

index.php的改进为:

<?php

//入口文件
//引入核心启动类
include 'framework/core/Framework.class.php';
//$app=new Framework();
//$app->run();
Framework::run();
echo getcwd();

?>

我们做项目第一步就是做目录的路径常量

1.做根目录的路径常量:

define("DS",DIRECTORY_SEPARATOR);

define("ROOT",getcwd().'/');

第二步 做application目录

define("APP_PATH",ROOT.'application'.DS);

第三步  做framework目录

define("FRAMEWORK_PATH",ROOT.'framework'.DS);

 

第四步 做public路径常量

  define("PUBLIC_PATH",ROOT.'public'.DS);

第五步   建立config目录

  define("GONFIG_PATH",APP_PATH."config".DS);

其他目录以此类推:

我就不一一画图了

define("CONTROLLER_PATH",APP_PATH."controllers".DS);

define("MODEL_PATH",APP_PATH."models".DS);
define("VIEW_PATH",APP_PATH.'views'.DS);
define("CORE_PATH",FRAMEWORK_PATH.'core'.DS);
define("DB_PATH",FRAMEWORK_PATH.'databases'.DS);
define("LIB_PATH",FRAMEWORK_PATH.'libraries'.DS);
define("HELPER_PATH",FRAMEWORK_PATH.helpers);
define("UPLOAD_PATH",PUBLIC_PATH.'uploads'.DS);

第六步  获取参数p  ,c,a

类比百度:

https://www.baidu.com/?tn=98010089_dg&ch=12

后面这种方式

http://localhost:8989/ index.php?p=admin&c=goods&a=add

//获取参数p ,c,a

define('PLATFORM', isset($_GET['p'])?$_GET['p']:"admin");
define('CONTROLLER',isset($_GET['c'])?ucfirst($_GET['c']):"Index");
define('ACTION',isset($_GET['a'])?$_GET['a']:"index");

第七步设置当前控制器和视图

 

define("CUR_CONTROLLER_PATH",CONTROLLER_PATH.PLATFORM.DS);

define("CUR_VIEW_PATH",VIEW_PATH.PLATFORM.DS);

整体代码如下:

<?php

//核心启动类
class Framework{
public static function run(){
echo "hello,wrold!";
}
//初始化方法
private static function init(){
//定义路径常量
define("DS",DIRECTORY_SEPARATOR);
define("ROOT",getcwd().'/');
define("APP_PATH",ROOT.'application'.DS);
define("FRAMEWORK_PATH",ROOT.'framework'.DS);
define("PUBLIC_PATH",ROOT.'public'.DS);
define("GONFIG_PATH",APP_PATH."config".DS);
define("CONTROLLER_PATH",APP_PATH."controllers".DS);
define("MODEL_PATH",APP_PATH."models".DS);
define("VIEW_PATH",APP_PATH.'views'.DS);
define("CORE_PATH",FRAMEWORK_PATH.'core'.DS);
define("DB_PATH",FRAMEWORK_PATH.'databases'.DS);
define("LIB_PATH",FRAMEWORK_PATH.'libraries'.DS);
define("HELPER_PATH",FRAMEWORK_PATH.helpers);
define("UPLOAD_PATH",PUBLIC_PATH.'uploads'.DS);
//获取参数p ,c,a
define('PLATFORM', isset($_GET['p'])?$_GET['p']:"admin");
define('CONTROLLER',isset($_GET['c'])?ucfirst($_GET['c']):"Index");
define('ACTION',isset($_GET['a'])?$_GET['a']:"index");
//设置当前控制器和视图
define("CUR_CONTROLLER_PATH",CONTROLLER_PATH.PLATFORM.DS);
define("CUR_VIEW_PATH",VIEW_PATH.PLATFORM.DS);
}
//路由方法
private static function dispatch(){
}
//自动加载
private static function autoload(){
}
}

 

?>

 

转载于:https://www.cnblogs.com/zhouxingzhi/p/10306821.html

你可能感兴趣的文章
iOS--React Native浏览器插件
查看>>
一个JSON字符串和文件处理的命令行神器jq,windows和linux都可用
查看>>
Notification Swift 3 0
查看>>
Ionic Cordova实现软键盘的监听 以及操作大全
查看>>
Android小知识10则(下)
查看>>
Flask源码解析:从第一个版本开始阅读Flask源码
查看>>
JavaScript 工作原理之二-如何在 V8 引擎中书写最优代码的 5 条小技巧(译)
查看>>
Java集合(一) —— ArrayList
查看>>
作为JavaScript开发人员,这些必备的VS Code插件你都用过吗
查看>>
Promise 学习笔记
查看>>
区块链招聘面试工作中可能会问到的40个问题。
查看>>
[译] 如何在安卓应用中使用 TensorFlow Mobile
查看>>
SEO优化之——html页面相关总结
查看>>
一个不太好的消息
查看>>
Node.js 非阻塞的 Sleep 要怎么写 ?
查看>>
Python基础(十八): 类和对象以及它们的属性
查看>>
java B2B2C Springcloud仿淘宝电子商城系统
查看>>
【动画】当我们在读写Socket时,我们究竟在读写什么?
查看>>
Android Studio 修改包名 com.example.calculator-----&gt;com.melon.calculator
查看>>
SpringBoot Cache 深入
查看>>