{"id":26947443,"url":"https://github.com/lejianwen/fmz_framework","last_synced_at":"2025-04-02T20:19:17.731Z","repository":{"id":62518360,"uuid":"76822853","full_name":"lejianwen/FMZ_framework","owner":"lejianwen","description":"My simple framework","archived":false,"fork":false,"pushed_at":"2024-08-14T12:29:37.000Z","size":62479,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-14T13:52:06.486Z","etag":null,"topics":["eloquent","framework","laravel","php","smarty"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lejianwen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-19T02:57:00.000Z","updated_at":"2024-08-14T13:52:07.865Z","dependencies_parsed_at":"2024-01-10T08:45:42.318Z","dependency_job_id":null,"html_url":"https://github.com/lejianwen/FMZ_framework","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lejianwen%2FFMZ_framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lejianwen%2FFMZ_framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lejianwen%2FFMZ_framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lejianwen%2FFMZ_framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lejianwen","download_url":"https://codeload.github.com/lejianwen/FMZ_framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246884738,"owners_count":20849554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eloquent","framework","laravel","php","smarty"],"created_at":"2025-04-02T20:19:17.136Z","updated_at":"2025-04-02T20:19:17.725Z","avatar_url":"https://github.com/lejianwen.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A simple framework for FMZ！\n\n# 简介\n* 通过开发框架，让自己对web开发有了更好的认识\n* ORM使用的是[eloquent](https://laravel.com/docs/5.4/eloquent)，即laravel使用的ORM\n* 视图使用的是[smarty](http://www.smarty.net/)或者原生PHP\n* session支持存放到mysql和redis和PHP自带方式\n* cache支持文件和redis\n \n#安装\n\n## 方法一\n* 运行composer create-project ljw/framework ljw --prefer-dist\n## 方法二\n* 直接下载或克隆 (git clone https://github.com/lejianwen/FMZ_framework.git)\n* 然后运行composer install\n\n#目录结构\n~~~\nljw                     WEB部署目录（或者子目录）\n├─app                   应用目录\n│  ├─controllers        控制器\n│  ├─models             模型\n│  └─views              视图  \n├─bootstrap             \n│  └─bootstrap.php      应用启动文件\n├─config                配置文件目录\n│  ├─app.php            项目配置\n│  ├─routes.php         路由配置文件\n│  ├─redis.php          redis配置\n│  └─database.php       数据库配置文件 \n├─lib                   框架系统目录\n│  ├─http               http目录\n│  ├─session            session存放实现目录\n│  ├─view               视图目录\n│  └─ ...               更多系统模块\n│\n├─public                WEB目录（对外访问目录）\n│  ├─static             静态文件目录，比如js，image\n│  ├─index.php          入口文件\n│  └─.htaccess          用于apache的重写\n├─runtime\n│  ├─cache              缓存文件目录\n│  ├─log                日志文件目录\n│  └─smarty             smarty使用的目录\n|\n├─vendor                第三方类库目录（Composer依赖库）\n├─.env                  环境配置文件，请自行创建或复制.env.example\n├─.env.example          环境配置文件示例，请复制修改为.env\n├─composer.json         composer 定义文件\n└─README.md             README 文件\n~~~\n## 配置简介\n\n### env($name, $default = null)方法会读取文件 *.env* 中的配置项。\n每个环境可能不同，顾没有加入到git版本控制中，请自行添加，或者复制 *.env.example* 文件为 *.env*\n\n* [app.php](#1-appphp)           项目配置文件\n* [routes.php](#2-routesphp)       路由配置文件\n* [redis.php](#3-redisphp)          redis配置文件\n* [database.php](#4-databasephp)       数据库配置文件\n\n\n\n###1. \u003ci id=\"1-appphp\"\u003eapp.php\u003c/i\u003e \n~~~\nreturn [\n    //session存放 为空表示用自带的, '' || mysql_pdo || redis , 具体看lib/session中的文件\n    'session'           =\u003e '',\n    'session_table'     =\u003e 'session',    //session 存放在mysql中的表名\n    'session_lefttime'  =\u003e 1000,         //session有效时间\n    'session_redis_dir' =\u003e 'default',            //session 使用的redis配置\n    'debug'             =\u003e env('APP_DEBUG', false),         //调试模式\n    'view'              =\u003e 'smarty',     //模板 smarty||native\n    'smarty'            =\u003e [             //smarty配置\n        'debug'           =\u003e env('SMARTY_DEBUG', false),            //是否弹出debug窗口\n        'force_compile'   =\u003e env('SMARTY_FORCE_COMPILE', false),    //检查模板是否改动,开发时打开,正式 关闭\n        'cache'           =\u003e env('SMARTY_CACHE', true),             //是否缓存\n        'cache_lifetime'  =\u003e 1200,       //缓存时间\n        'cache_dir'       =\u003e RUNTIME_PATH . 'smarty/cache/',          //缓存目录\n        'compile_dir'     =\u003e RUNTIME_PATH . 'smarty/templates_c/',    //编译目录\n        'left_delimiter'  =\u003e '\u003c{',      //左定界符\n        'right_delimiter' =\u003e '}\u003e'       //右定界符\n    ],\n    'cache'             =\u003e 'file',       //缓存类型，file||redis\n    'cache_expire'      =\u003e 1200,         //缓存时间\n    'cache_file_dir'    =\u003e RUNTIME_PATH . 'cache/',\n    'cache_redis_dir'   =\u003e 'default',   //cache 使用的redis配置\n    'sys_log'           =\u003e env('SYS_LOG', true),                 //系统日志是否开启\n    'sys_log_level'     =\u003e env('SYS_LOG_LEVEL', 'debug'),        //系统日志级别\n    'sys_error_log'     =\u003e env('SYS_ERROR_LOG', true)            //系统错误日志是否开启\n\n];\n~~~\n##### *debug*   是否打开DEBUG模式\n\n#### 1) SESSION的相关配置\n##### *session* session存储方式\n* ''             使用PHP默认的session存储方式,此时session_lefttime配置失效,请查看**php.ini**;\n* 'mysql_pdo'    使用mysql存储session,**暂时只支持pdo，请安装好pdo扩展**\n    * 使用此配置时,请填写session_table,表示session存储的表名\n    * 创建session表\n~~~\n     CREATE TABLE `table` (\n         id varchar(255) NOT NULL,\n         expire TIMESTAMP DEFAULT CURRENT_TIMESTAMP,\n         data blob,\n         UNIQUE KEY `id` (`id`) USING BTREE,\n         KEY `expire` (`expire`) USING BTREE\n       )ENGINE=myisam default charset=utf8;\n~~~\n* 'redis'        使用redis存储session, **必须安装php_redis扩展**\n\n##### *session_table* 用mysql存储session时的表名\n##### *session_redis_dir* 用redis存储session时的配置\n##### *session_lefttime* session的过期时间,单位秒\n\n#### 2) 视图配置\n**视图模板都用.tpl作为文件后缀**\n##### *view* 视图\n* 'smarty'  使用smarty作为视图\n    * 使用此配置时，请填写smarty详细配置\n* 'native'  使用原生PHP作为视图,在视图模板使用原生php\n\n#### 3) 缓存配置\n##### *cache*  缓存使用方式\n* 'file'    使用文件缓存\n* 'redis'   使用redis缓存,**必须安装php_redis扩展**\n\n##### *cache_expire*   缓存有效时间\n##### *cache_file_dir* 缓存文件目录\n##### *session_redis_dir* 缓存使用的redis 配置\n### 2. \u003ci id=\"2-routesphp\"\u003eroutes.php\u003c/i\u003e \n#### 路由配置 [参考ljw/route](https://github.com/lejianwen/route)\n~~~php\nuse \\Ljw\\Route\\Route;\nRoute::space('app\\\\controllers\\\\', 'app\\\\middleware\\\\');\n\nRoute::get('', 'IndexController@index');\nRoute::get('index/middle','Index@index', 'IndexController@middle');\n\nRoute::error(function (){\n    app('response')-\u003estatus('404');\n    echo '404 Not Found!';\n});\nRoute::run();\n~~~\n#### *get*  get请求\n#### *post*  post请求\n#### *error*  错误\n\n###3.    \u003ci id=\"3-redisphp\"\u003eredis.php\u003c/i\u003e\n####    redis相关配置\n~~~\nreturn [\n    'default' =\u003e [\n        'host'     =\u003e env('REDIS_HOST', '127.0.0.1'),\n        'pwd'      =\u003e env('REDIS_PASSWORD', null),\n        'port'     =\u003e env('REDIS_PORT', 6379),\n        'database' =\u003e 0,\n    ]\n];\n~~~\n###4.    \u003ci id=\"4-databasephp\"\u003edatabase.php\u003c/i\u003e\n####    数据库相关配置\n\n~~~\nreturn [\n    'driver'      =\u003e 'mysql',\n    'host'        =\u003e env('DB_HOST', '127.0.0.1'),\n    'port'        =\u003e env('DB_PORT', '3306'),\n    'database'    =\u003e env('DB_DATABASE', 'forge'),\n    'username'    =\u003e env('DB_USERNAME', 'forge'),\n    'password'    =\u003e env('DB_PASSWORD', ''),\n    'unix_socket' =\u003e env('DB_SOCKET', ''),\n    'charset'     =\u003e 'utf8mb4',\n    'collation'   =\u003e 'utf8mb4_unicode_ci',\n    'prefix'      =\u003e '',\n    'strict'      =\u003e true,\n    'engine'      =\u003e null,\n];\n~~~\n\n### 添加命令行模式\n~~~php\nphp console demo/first[/param1[/param2[...]]]\n~~~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flejianwen%2Ffmz_framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flejianwen%2Ffmz_framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flejianwen%2Ffmz_framework/lists"}