sonypradana / php-library
用于构建PHP MVC的库
v0.36.3
2024-09-26 06:52 UTC
Requires
- php: ^8.0
- ext-mbstring: *
- php-di/php-di: ^7.0
- sonypradana/validator: ^0.8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- mockery/mockery: ^1.6
- phpstan/phpstan: ^1.12
- phpunit/phpunit: ^9.6
- rector/rector: ^1.2
Replaces
- sonypradana/cache: v0.36.3
- sonypradana/collection: v0.36.3
- sonypradana/console: v0.36.3
- sonypradana/container: v0.36.3
- sonypradana/cron: v0.36.3
- sonypradana/database: v0.36.3
- sonypradana/file: v0.36.3
- sonypradana/http: v0.36.3
- sonypradana/router: v0.36.3
- sonypradana/security: v0.36.3
- sonypradana/support: v0.36.3
- sonypradana/template: v0.36.3
- sonypradana/text: v0.36.3
- sonypradana/time: v0.36.3
- sonypradana/view: v0.36.3
- dev-master / 0.x-dev
- v0.36.3
- v0.36.2
- v0.36.1
- v0.36.0
- v0.35.6
- v0.35.5
- v0.35.4
- v0.35.3
- v0.35.2
- v0.35.1
- v0.35.0
- v0.34.1
- v0.34.0
- v0.33.0
- v0.32.x-dev
- v0.32.4
- v0.32.3
- v0.32.2
- v0.32.1
- v0.32.0
- v0.31.1
- v0.31.0
- v0.30.0
- v0.29.1
- v0.29.0
- v0.28.0
- v0.27.4
- v0.27.3
- v0.27.2
- v0.27.1
- v0.27.0
- v0.26.2
- v0.26.1
- v0.26.0
- v0.25.1
- v0.25.0
- v0.24.0
- v0.23.0
- v0.22.1
- v0.22.0
- v0.21.1
- v0.21.0
- v0.20
- v0.19.1
- v0.19.0
- v0.18.0
- v0.17.0
- v0.16.0
- v0.15.0
- v0.14.0
- v0.13.0
- v0.12.4
- v0.12.3
- v0.12.2
- v0.12.1
- v0.12.0
- v0.11.1
- v0.11.0
- v0.10.5
- v0.10.4
- v0.10.3
- v0.10.2
- v0.10.1
- v0.10.0
- v0.9.1
- v0.9.0
- v0.8.0
- v0.7.1
- v0.7.0
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.0
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.3
- v0.1.2
- v0.1.1
- dev-fix/testcase-life-cycle
- dev-fix/test-initial-kernel
- dev-remove/remove-monorepo-builder
- dev-remove/remove-route-controller
- dev-dev
- dev-refactor/package-manifest-config
- dev-feat/package-manifest-checker
- dev-bump-phpunit-ver-10
- dev-feat-console-karnel-report-handler
- dev-templator-with-manifestor
- dev-pipeline
- dev-router-invoke
- dev-route-redirect
- dev-console-style-rule
- dev-cron-logger
- dev-controller-type
- dev-rector
- dev-console-box
- dev-optional-autoload
- dev-collection-type-single-template
- dev-app-config
- dev-db-excute
This package is auto-updated.
Last update: 2024-09-26 06:57:15 UTC
README
Php mvc with minum mvc framework. 简单易用
注意: 此存储库包含php-mvc的核心代码。如果您想构建应用程序,请访问主php-mvc。
注意: 此存储库深受
laravel\framework和symfony\symfony的启发。
功能
- MVC基础
- 容器(依赖注入)
- 路由
- 模型(数据库类关系)
- 视图和控制器
- MyQuery(数据库查询构建器)
- Collection(数组集合)
- Console(构建美观的命令行应用程序)
- 模板(使用类生成器创建类)
- 定时任务
- Now(时间管理)
- HTTP请求和响应
- Str(字符串操作)
内置查询构建器
当然,我们支持CRUD数据库,这是一个示例
选择数据
DB::table('table_name') ->select(['column_1']) ->equal('column_2', 'fast_mvc') ->order("column_1", MyQuery::ORDER_ASC) ->limit(1, 10) ->all() ;
结果将显示查询中的数据,与SQL查询相同
SELECT `column_1` FROM `table_name` WHERE (`column_2` = 'fast_mvc') ORDER BY `table_name`.`column_1` ASC LIMIT 1, 10
更新数据
DB::table('table_name') ->update() ->values([ 'column_1' => 'simple_mvc', 'column_2' => 'fast_mvc', 'column_3' => 123 ]) ->equal('column_4', 'fast_mvc') ->execute() ;
如果SQL查询成功执行,结果将是布尔值true,与SQL查询相同
UPDATE `table_name` SET `column_1` = 'simple_mvc', `column_2` = 'fast_mvc', 'column_3' = 123 WHERE (`column_4` = 'speed')
插入和删除
// insert DB::table('table_name') ->insert() ->values([ 'column_1' => '', 'column_2' => 'simple_mvc', 'column_3' => 'fast_mvc' ]) ->execute() ; // delete DB::table('table_name') ->delete() ->equal('column_3', 'slow_mvc') ->execute() ;
如果您需要,支持取消事务
use System\Support\Facades; PDO::transaction(function() { DB::table('table_name') ->insert() ->value('age', 22) ->execute() ; // some condition if (false === $statment) { return false; } return true; });
创建数据库表
创建数据库表
Schema::table('users', function(Column $column) { $column('user')->varchar(50); $column('pwd')->varchar(500)->notNull(); $column->primeryKeys('user'); }) ->excute();
集合
数组集合,将功能数组处理为链式方法
创建新集合
$coll = new Collection(['vb_net', 'c_sharp', 'java', 'python', 'php', 'javascript', 'html']); $arr = $coll ->remove('html') ->sort() ->filter(fn ($item) => strlen($item) > 4) ->map(fn ($item) => ucfirst($item)) ->each(function($item) { echo $item . PHP_EOL; }) ->all() ; // arr = ['c_sharp', 'javascript', 'python', 'vb_net']
可用方法
add()remove()set()clear()replace()each()mapfilter()sort()sortDesc()sortKey()sortKeyDesc()sortBy()sortByDecs()all()
控制台
构建美观的命令行应用程序变得简单
- 命名参数
- 着色控制台(文本和背景)
构建简单的控制台应用程序
class GreatConsole extends Console { public function main() { // getter to get param form cli argument $name = $this->name ?? 'animus'; style("Great console Aapplication") ->textGreen() ->newLines() ->push("hay my name is ") ->push($name) ->textYellow() ->out() ; } }
运行您的应用程序
- 创建启动器
#!usr/bin/env php // $argv come with default global php return (new greatConsole($argv))->main();
- 在您的控制台
php cli greate --name php_mvc # output: # Great console application # hay my name is php_mvc
Str
进行字符串操作。
Str::chartAt('i love php', 3); // o Str::concat(['i', 'love', 'php']); // i love php Str::indexOf('i love php', 'p'); // 8 Str::lastIndexOf('i love php', 'p'); // 10 Str::match('i love php', '/love/'); // love // ... // and many more
chartAtconcatindexOflastIndexOfmatchslicesplitreplacetoUpperCasetoLowerCasefirstUpperfirstUpperAlltoSnakeCasetoKebabCasetoPascalCasetoCamelCasecontainsstartsWithendsWithslugtemplatelengthrepeatisStringisEmptyfillfillEndlimit
自定义宏
自定义宏字符串;
Str::macro('prefix', fn($text, $prefix) => $prefix.$test); echo Str::prefix('cool', 'its '); // its cool
String类
使用链式字符串类。
$string = new Text('I Love rust'); echo $string->replace('rust', 'php')->lower()->slug(); // i-love-php echo $string->length(); // 10 echo $string->isEmpty(); // false
String Regex
Str::is('some@email.com', Regex::EMAIL); // true
可用的正则表达式
emailuserplain_textslughtml_tagjs_inlinepassword_complexpassword_moderatedate_yyyymmdddate_ddmmyyyydate_ddmmmyyyyip4ip6ip4_6url