lyhiving/mmodel
Composer 安装命令:
composer require lyhiving/mmodel
包简介
PHP mini model.Fast MySQL select/insert/update/delete actions.
README 文档
README
php 小模型。
快速实现CRUD操作的小模型
普通版CRUD + 远程CRUD 用于快速开始项目
安装
使用 Composer
composer require lyhiving/mmodel
或
{
"require": {
"lyhiving/mmodel": "2.*"
}
}
用法
- 本地使用
<?php //引入autoload.php use lyhiving\mmodel\Mcache; use lyhiving\mmodel\Mmodel; //如果想使用文件缓存,请确保缓存文件的安全 // $cache = new Mcache('files', ['path' => __DIR__ . '/.cachemeta']); //使用redis缓存 $cache = new Mcache('redis', [ 'host' => 'localhost', //Redis server 'port' => 6379, //Redis port 'password' => 'root', //Redis password 'database' => 0 //Redis db ]); //配置参数 $options = [ // 'driver' => 'mysql', 'host' => 'localhost', // 'port' => '3306', 'username' => 'root', 'password' => 'root', 'dbname' => 'test', 'prefix' => 'cloud_', // 'pconnect' => 1, 'charset' => 'utf8mb4', ]; $model = new Mmodel($options); //设置缓存 $model->set_cache($cache); $model->quick('cms'); $data = $model->select(array('contentid' => 1)); var_dump($data);
- 远程使用
服务端:
<?php //引入autoload.php use lyhiving\mmodel\Mcache; use lyhiving\mmodel\Mmodel; use Hprose\Http\Server; //缓存 $cache = new Mcache('redis', [ 'host' => 'localhost', 'port' => 6379, 'password' => 'root', 'database' => 0 ]); //配置 $options = [ 'driver' => 'mysql', 'host' => 'localhost', 'port' => '3306', 'username' => 'root', 'password' => 'root', 'dbname' => 'test', 'prefix' => 'cloud_', 'pconnect' => 1, 'charset' => 'utf8mb4', ]; $model = new Mmodel($options); $model->set_cache($cache); $server = new Server(); $server->addInstanceMethods($model->db); $server->setCrossDomainEnabled(); $server->start();
客户端:
<?php //引入autoload.php use lyhiving\mmodel\Mcache; use lyhiving\mmodel\Mmodel; $options = [ 'driver' => 'rpc', 'url' => 'http://localhost/mmodel/examples/server.php', 'prefix' =>'cloud_' //如果有设置前缀,一定要在配置注明 ]; $model = new Mmodel($options); $model->quick('cms'); $data = $model->select(array('contentid' => 1)); var_dump($data);
简单模板viewer的使用:
<?php //引入autoload.php use lyhiving\mmodel\Mmodel; //初始化指定路径 $template = Mmodel::template(['dir' => __DIR__ . '/templates/']); //赋值方法一 $template->assign('time', time()); //赋值方法二 $template->assign(['time2'=>microtime(true)]); $template->assign('data',[['id'=>1,'name'=>'name1'],['id'=>2,'name'=>'name2']]); //选择模板 $template->display('demo');
关于远程调用的加密
目前先这样用,远程的地址复杂点就是了。
TODO: 看情况加入渐变验证组件。
关于缓存
缓存实际上使用了 phpfastcache, 一个很不错的缓存包。由于安全相关的问题,目前使用到V8.1.0版本,该版本要求PHP>=7.3, 希望可以兼容多点的PHP版本。
实际上如果非常轻便的开发,甚至连缓存都可以不用。
使用缓存的时候注意,如果更新了表结构需要清除缓存。如果不清,默认15分钟后缓存失效。
关于hprose
目前hprose的作者估计想升级到hprose3.0。但3.0使用的compsoser要求安装ext_hprose扩展,这个对于部分同学部署起来并不友好。因此我限制使用2.0.40的版本,该版本不需要安装相关的扩展。
啰嗦一句,其实Andot 弄这个hprose很久的了,我也很早的时候就用上了。多久?那个时候还叫PHPRPC的时候 :)
hprose支持很多语言,性能很很帅,可惜文档就是不给力。作者也是维护多语言版本,生态没弄好。希望hprose会好起来。
lyhiving/mmodel 适用场景与选型建议
lyhiving/mmodel 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 22 次下载、GitHub Stars 达 1, 最近一次更新时间为 2020 年 05 月 23 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「model」 「fast」 「quick」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 lyhiving/mmodel 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 lyhiving/mmodel 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 lyhiving/mmodel 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
Interfaces for web resource models and services to retrieve and create them
Quick gallery content block for Silverstripe CMS
Laravel 5 - Repositories to the database layer
Splot Framework. Lightweight, fully featured framework for rapid web development.
Symfony2 Bundle to integrate the CKEditor plugin quick table
统计信息
- 总下载量: 22
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-05-23