Documentation | Changelog | Contributing | Code Of Conduct | License
- MVC base
- Container (dependency injection)
- Route
- Model (database class relation)
- View and Controller
- Query; (database query builder)
- Collection (array collection)
- Console (assembling beautiful console app)
- Template (create class using class generator)
- Cron
- Now (time managing)
- Http request and response
- Str (string manipulation)
of course, we are support CRUD database, this a sample
DB::table('table_name')
->select(['column_1'])
->equal('column_2', 'fast_mvc')
->order("column_1", Query::ORDER_ASC)
->limit(1, 10)
->all()
;the result will show data from query, its same with SQL query
SELECT `column_1` FROM `table_name` WHERE (`column_2` = 'fast_mvc') ORDER BY `table_name`.`column_1` ASC LIMIT 1, 10DB::table('table_name')
->update()
->values([
'column_1' => 'simple_mvc',
'column_2' => 'fast_mvc',
'column_3' => 123
])
->equal('column_4', 'fast_mvc')
->execute()
;the result is boolean true if sql success execute query, its same with SQL query
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()
;its supported cancel transaction if you needed
use Omega\Support\Facades;
PDO::transaction(function() {
DB::table('table_name')
->insert()
->value('age', 22)
->execute()
;
// some condition
if (false === $statment) {
return false;
}
return true;
});create database table
Schema::table('users', function(Column $column) {
$column('user')->varchar(50);
$column('pwd')->varchar(500)->notNull();
$column->primeryKeys('user');
})
->excute();Array collection, handel functional array as chain method
$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()
Assembling beautifully console app make easy
- naming parameter
- coloring console (text and background)
class GreatConsole extends Console
{
public function main()
{
// getter to get param form cli argument
$name = $this->name ?? 'animus';
style("Great console Application")
->textGreen()
->newLines()
->push("hay my name is ")
->push($name)
->textYellow()
->out()
;
}
}Run your app
- create bootstrapper
#!usr/bin/env php
// $argv come with default global php
return (new greatConsole($argv))->main();- on your console
php cli greate --name php_mvc
# output:
# Great console application
# hay my name is php_mvcMake string manipulation.
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 morechartAtconcatindexOflastIndexOfmatchslicesplitreplacetoUpperCasetoLowerCasefirstUpperfirstUpperAlltoSnackCasetoKebabCasetoPascalCasetoCamelCasecontainsstartsWithendsWithslugtemplatelengthrepeatisStringisEmptyfillfillEndlimit
custom macro string;
Str::macro('prefix', fn($text, $prefix) => $prefix.$test);
echo Str::prefix('cool', 'its '); // it's cooluse chain string class.
$string = new Text('I Love rust');
echo $string->replace('rust', 'php')->lower()->slug();
// i-love-php
echo $string->length(); // 10
echo $string->isEmpty(); // falseStr::is('some@email.com', Regex::EMAIL); // trueavailable regex
emailuserplain_textslughtml_tagjs_inlinepassword_complexpassword_moderatedate_yyyymmdddate_ddmmyyyydate_ddmmmyyyyip4ip6ip4_6url