网站首页
[LuPHP] PHPMVC精简框架第一讲(基本MVC框架配置)
LuPHP是一个精简版的PHPMVC框架,该框架经历了N个高可用系统的测验(数据存储量千万级别,并发1000),该框架结合了市面上流行的PHP框架,去除了臃肿的代码;本框架遵循即用即写的原则,做到项目中绝不存在多余(实际根本用不上)代码!
该框架作者历经10年以上项目研发经验,总结并写出一套适合自己的PHPMVC框架,
框架包括基本的路由功能、数据库操作类、redis类、session类、附件上传类、应用路由功能,还加入LuBatis ,方便DBA维护sql语句;
LuBatis是一款类似java中的mybatis的一个数据库框架,简单理解就是把sql写入xml(配置文件)中,无论是在业务逻辑,还是在控制器中都不出现sql语句,统一由LuBatis进行控制;
【源码下载】
第一讲:框架配置
1、下载源码并按照说明配置
如果站点根目录为public,则 ROOT_PATH定义为 \dirname(\dirname(__FILE__)) .'/'
如果站点根目录和app 、core 目录为同级目录则ROOT_PATH定义为\dirname(__FILE__) . '/'
如果希望站点为根目录 则需要把public的所有文件包括文件夹移动到public外层
建议使用public作为根目录,apache 或者nginx配置站点根目录为public
如果是Apache服务器,在 project 目录下新建一个 .htaccess 文件,内容为:
<IfModule mod_rewrite.c>
# 打开Rerite功能
RewriteEngine On
# 如果请求的是真实存在的文件或目录,直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 如果访问的文件或目录不是真事存在,分发请求至 index.php
RewriteRule . index.php
</IfModule>
如果是Nginx服务器,修改配置文件,在server块中加入如下的重定向:
location / {
try_files $uri $uri/ /你的项目路径/index.php$args;
}
==================================================================================================
2、config(配置文件配置)
\config\的文件为配置文件
config.php 数据库链接 / 应用 / redis链接的配置文件;
define.php 公共常亮定义;
2.1 \config\config.php
<?php
/**
* * 版权所有 2016-2019 lizhongwen,并保留所有权利;
* 说明: 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用;不允许对程序代码以任何形式任何目的的再发布;
* 作者: lizhongwen;
* 作者主页: http://www.lizhongwen.com;
* 邮箱: lizhongwen@lizhongwen.com;
* QQ: 360811363;
*/
$config['db'] = [
'default' => [
'host' => '127.0.0.1',
'port' => '3306',
'dbName' => 'mvc_test',
'userName' => 'root',
'password' => 'root'
]
];
/**
* 应用配置,一个系统站点可能存在多个应用
* 例如:我们做一个支付系统,其中有管理端,还有商户端,代理端等
* 我们通过下面配置预先定义好应用的过滤器,
* filter 是指该应用是否有过滤器,
* status 该应用状态
* 例如我们配置的应用为admin(统一小写)
* 配置完成该项后,新建过滤器文件 \core\appFilter\Admin.php
*/
$config['appName'] = [
'web' => [
'filter' => true,
'status' => true
],
'api' => [
'filter' => true,
'status' => true
],
'admin' => [
'filter' => true,
'status' => true
]
];
/*
* redis链接信息
*/
$config['redis'] = [
'default' => [
'port' => 6379,
'host' => '',
'password' => ''
]
];
return $config;
2.2 、\config\define.php
<?php
/**
* * 版权所有 2016-2019 lizhongwen,并保留所有权利;
* 说明: 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用;不允许对程序代码以任何形式任何目的的再发布;
* 作者: lizhongwen;
* 作者主页: http://www.lizhongwen.com;
* 邮箱: lizhongwen@lizhongwen.com;
* QQ: 360811363;
*/
\define('APP_DEBUG', true); // 是否开启调试模式,生产环境为false
\define('PUBLIC_CONTROLLER', 'Upload,PublicCode,Index,Login'); // 公共控制器
\define('SESSION_EXPIRE', '144000'); // session过期时间 单位秒
==================================================================================================
3、控制器 (\app\web\controller\Index.php)
<?php
namespace app\web\controller;
use core\Controller;
class Index extends Controller
{
public function index(){
$this->view();
}
}
==================================================================================================
4、视图(\app\web\view\index\index.php)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
<h2>能看到这里,说明你的站点配置已经OK了</h2>
</body>
</html>
==================================================================================================
点击下方源码下载部署即可看到效果,
请持续关注,下节课将会讲到 多个应用配置等相关课程!!!
【源码下载】
相关推荐
-
centos7刚安装的docker 1.13.1启动报错Docker failed to start
yum install docker device-mapper-event-libs -y 安装dockersystemctl start docker 报错解决 关闭seliunx 修改文件 /etc/sysconfig/docker加上=false...
-
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
1、什么是 Redis?.2、Redis 的数据类型?3、使用 Redis 有哪些好处?4、Redis 相比 Memcached 有哪些优势?5、Memcache 与 Redis 的区别都有哪些?6、Redis 是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis 的持久化机...
-
Linux内核调优(大并发场景下)
为了让系统能够支持更大的并发,除了必须安装event扩展(或libevent扩展)之外,优化linux内核也是重中之重,以下优化每一项都非常非常重要,请务必按逐一完成。打开文件 /etc/sysctl.conf,增加以下设置#该参数设置系统的TIME_WAIT的数量,如果超过默认值则会被立即清除 ...
-
.htaccess文件设置某目录下所有文件禁止访问
如网站,有些目录下的文件不允许被下载则需要设置.htaccess文件为了减少服务器压力:应将apache配置文件<Directory /> AllowOverride All</Directory> 最好修改成指定目录: <...
-
如何安装php7的event扩展
最近api系统遇到了高并发的瓶颈,想通过workerman重构。在看workerman文档时发现这么一句话:Event扩展不是必须的,当业务需要支撑上万并发连接时,推荐安装Event,能够支持巨大的并发连接。如果业务并发连接比较低,例如1000并发连接,则可以不用安装。如果无法安装Event扩展,可...
-
CentOS下php安装imagick扩展
1、安装ImageMagic[root@localhost download]# wget http://www.imagemagick.org/download/ImageMagick.tar.gz[root@localhost download]# tar -xzvf ImageMagick[r...
-
编程的程序员们,你们有语言崇拜么?比如PHP是世界上最好的语言
有个有关程序员语言界的段子:问,你如何让一个论坛的人吵起来?答,PHP是世界上最好的语言。“PHP是世界上最好的语言”,虽然身在IT界,但说实话,这句话直到去年才明白,还是公司里招了个PHP程序员,问的他这句话到底是什么意思。大学中学的语言的话,FoxBase、C、C++,VB,Java,Ruby,...
-
java 生成缩略图 imageIO异常:Unsupported Image Type, 不支持图像类型【附解决办法】
最近再做图片生成缩略图功能,发现大部分的图片都可以生成缩略图,但是偶尔有几个图片会报异常:Unsupported Image Type;几经折腾,发现报异常的图片格式为CMYK 格式,我们常见的图片格式都是RGB格式的,所以我们要把CMYK格式的图片转换成RGB格式的,网上有些办法转化后图片颜色会丢...