1 Star 1 Fork 0

蓝色不语 / FMZ_framework

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

A simple framework for FMZ!

简介

  • 通过开发框架,让自己对web开发有了更好的认识
  • ORM使用的是eloquent,即laravel使用的ORM
  • 视图使用的是smarty或者原生PHP
  • session支持存放到mysql和redis和PHP自带方式
  • cache支持文件和redis

#安装

方法一

  • 运行composer create-project ljw/framework ljw --prefer-dist

方法二

#目录结构

ljw                     WEB部署目录(或者子目录)
├─app                   应用目录
│  ├─controllers        控制器
│  ├─models             模型
│  └─views              视图  
├─bootstrap             
│  └─bootstrap.php      应用启动文件
├─config                配置文件目录
│  ├─app.php            项目配置
│  ├─routes.php         路由配置文件
│  ├─redis.php          redis配置
│  └─database.php       数据库配置文件 
├─lib                   框架系统目录
│  ├─http               http目录
│  ├─session            session存放实现目录
│  ├─view               视图目录
│  └─ ...               更多系统模块

├─public                WEB目录(对外访问目录)
│  ├─static             静态文件目录,比如js,image
│  ├─index.php          入口文件
│  └─.htaccess          用于apache的重写
├─runtime
│  ├─cache              缓存文件目录
│  ├─log                日志文件目录
│  └─smarty             smarty使用的目录
|
├─vendor                第三方类库目录(Composer依赖库)
├─.env                  环境配置文件,请自行创建或复制.env.example
├─.env.example          环境配置文件示例,请复制修改为.env
├─composer.json         composer 定义文件
└─README.md             README 文件

配置简介

env($name, $default = null)方法会读取文件 .env 中的配置项。

每个环境可能不同,顾没有加入到git版本控制中,请自行添加,或者复制 .env.example 文件为 .env

###1. app.php

return [
    //session存放 为空表示用自带的, '' || mysql_pdo || redis , 具体看lib/session中的文件
    'session'           => '',
    'session_table'     => 'session',    //session 存放在mysql中的表名
    'session_lefttime'  => 1000,         //session有效时间
    'session_redis_dir' => 'default',            //session 使用的redis配置
    'debug'             => env('APP_DEBUG', false),         //调试模式
    'view'              => 'smarty',     //模板 smarty||native
    'smarty'            => [             //smarty配置
        'debug'           => env('SMARTY_DEBUG', false),            //是否弹出debug窗口
        'force_compile'   => env('SMARTY_FORCE_COMPILE', false),    //检查模板是否改动,开发时打开,正式 关闭
        'cache'           => env('SMARTY_CACHE', true),             //是否缓存
        'cache_lifetime'  => 1200,       //缓存时间
        'cache_dir'       => RUNTIME_PATH . 'smarty/cache/',          //缓存目录
        'compile_dir'     => RUNTIME_PATH . 'smarty/templates_c/',    //编译目录
        'left_delimiter'  => '<{',      //左定界符
        'right_delimiter' => '}>'       //右定界符
    ],
    'cache'             => 'file',       //缓存类型,file||redis
    'cache_expire'      => 1200,         //缓存时间
    'cache_file_dir'    => RUNTIME_PATH . 'cache/',
    'cache_redis_dir'   => 'default',   //cache 使用的redis配置
    'sys_log'           => env('SYS_LOG', true),                 //系统日志是否开启
    'sys_log_level'     => env('SYS_LOG_LEVEL', 'debug'),        //系统日志级别
    'sys_error_log'     => env('SYS_ERROR_LOG', true)            //系统错误日志是否开启

];
debug 是否打开DEBUG模式

1) SESSION的相关配置

session session存储方式
  • '' 使用PHP默认的session存储方式,此时session_lefttime配置失效,请查看php.ini;
  • 'mysql_pdo' 使用mysql存储session,暂时只支持pdo,请安装好pdo扩展
    • 使用此配置时,请填写session_table,表示session存储的表名
    • 创建session表
     CREATE TABLE `table` (
         id varchar(255) NOT NULL,
         expire TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
         data blob,
         UNIQUE KEY `id` (`id`) USING BTREE,
         KEY `expire` (`expire`) USING BTREE
       )ENGINE=myisam default charset=utf8;
  • 'redis' 使用redis存储session, 必须安装php_redis扩展
session_table 用mysql存储session时的表名
session_redis_dir 用redis存储session时的配置
session_lefttime session的过期时间,单位秒

2) 视图配置

视图模板都用.tpl作为文件后缀

view 视图
  • 'smarty' 使用smarty作为视图
    • 使用此配置时,请填写smarty详细配置
  • 'native' 使用原生PHP作为视图,在视图模板使用原生php

3) 缓存配置

cache 缓存使用方式
  • 'file' 使用文件缓存
  • 'redis' 使用redis缓存,必须安装php_redis扩展
cache_expire 缓存有效时间
cache_file_dir 缓存文件目录
session_redis_dir 缓存使用的redis 配置

2. routes.php

路由配置 参考ljw/route

use \Ljw\Route\Route;
Route::space('app\\controllers\\', 'app\\middleware\\');

Route::get('', 'IndexController@index');
Route::get('index/middle','Index@index', 'IndexController@middle');

Route::error(function (){
    app('response')->status('404');
    echo '404 Not Found!';
});
Route::run();

get get请求

post post请求

error 错误

###3. redis.php

redis相关配置

return [
    'default' => [
        'host'     => env('REDIS_HOST', '127.0.0.1'),
        'pwd'      => env('REDIS_PASSWORD', null),
        'port'     => env('REDIS_PORT', 6379),
        'database' => 0,
    ]
];

###4. database.php

数据库相关配置

return [
    'driver'      => 'mysql',
    'host'        => env('DB_HOST', '127.0.0.1'),
    'port'        => env('DB_PORT', '3306'),
    'database'    => env('DB_DATABASE', 'forge'),
    'username'    => env('DB_USERNAME', 'forge'),
    'password'    => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset'     => 'utf8mb4',
    'collation'   => 'utf8mb4_unicode_ci',
    'prefix'      => '',
    'strict'      => true,
    'engine'      => null,
];

添加命令行模式

php console demo/first[/param1[/param2[...]]]
MIT License Copyright (c) 2023 Le Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

My simple framework 展开 收起
PHP 等 3 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/quietblue/FMZ_framework.git
git@gitee.com:quietblue/FMZ_framework.git
quietblue
FMZ_framework
FMZ_framework
master

搜索帮助