stdlib
v2.0.12
- stdlib - ไลบรารีเครื่องมือพื้นฐานที่มีประโยชน์สำหรับการพัฒนา PHP
ประกอบด้วย :
ประโยชน์เพิ่มเติม
PhpDotEnv
Dotenv( .env
)AutoLoader
โปรแกรมโหลดอัตโนมัติอย่างง่ายObjectBox
คอนเทนเนอร์วัตถุอย่างง่ายOptional
เช่น java java.util.Optional
composer require toolkit/ stdlib
use Toolkit stdlib Str StrBuffer ;
$ buf = StrBuffer:: new ( " c " );
$ buf -> prepend ( ' ab ' )
$ buf -> append ( ' de ' )
$ str = ( string ) $ buf ; // "abcde"
$ str = $ buf -> toString (); // "abcde"
// get and clean.
$ str = $ buf -> fetch (); // "abcde"
$ str = $ buf -> join ( ' , ' ); // "ab,c,de"
ObjectBox
- คอนเทนเนอร์วัตถุอย่างง่าย
use Toolkit stdlib Obj ObjectBox ;
$ box = ObjectBox:: global ();
// set
$ box -> set ( ' router ' , function () {
return new MyRouter ();
});
$ box -> set ( ' renderer ' , [
' class ' => MyRenderer::class,
' tplDir ' => ' path/to/dir ' ,
]);
// with options for create
$ box -> set ( ' somObj ' , [
' class ' => MyObject::class,
' __opt ' => [
// will always create new object.
' objType ' => ObjectBox:: TYPE_PROTOTYPE ,
],
]);
// get
/** @var MyRouter $router */
$ router = $ box -> get ( ' router ' );
/** @var MyRenderer $renderer */
$ renderer = $ box -> get ( ' renderer ' );
AutoLoader
- ตัวโหลด psr4 ธรรมดาที่สามารถใช้เพื่อการทดสอบ
AutoLoader:: addFiles ([
// alone files
]);
$ loader = AutoLoader:: getLoader ();
$ loader -> addPsr4Map ([
' namespace ' => ' path '
]);
$ loader -> addClassMap ([
' name ' => ' class file '
]);
มีจุดมุ่งหมายเพื่อกำจัดการตัดสินที่มากเกินไป
ไม่ใช้ ทางเลือก:
use Toolkit stdlib Util Optional ;
$ userModel = UserModel:: findOne ( 23 );
if ( $ userModel ) {
$ username = $ userModel -> name ;
} else {
$ username = ' unknown ' ;
}
ใช้ทางเลือก:
use Toolkit stdlib Util Optional ;
$ username = Optional:: ofNullable ( $ userModel )
-> map ( function ( $ userModel ) {
return $ userModel -> name ;
})-> orElse ( ' unknown ' );
ใช้ไวยากรณ์ลูกศร:
use Toolkit stdlib Util Optional ;
$ username = Optional:: ofNullable ( $ userModel )
-> map ( fn ( $ userModel ) => $ userModel -> name )
-> orElse ( ' unknown ' );
PhpDotEnv
- ตัวโหลดไฟล์ dont env อย่างง่าย
ไฟล์กำหนดค่า env .env
(ต้องอยู่ในรูปแบบ 'ini'):
APP_ENV =dev
DEBUG =true
; ... ...
การใช้งาน:
PhpDotEnv:: load ( __DIR__ , ' .env ' );
env ( ' DEBUG ' , false );
env ( ' APP_ENV ' , ' prod ' );
use Toolkit stdlib Util Stream DataStream ;
use Toolkit stdlib Util Stream ListStream ;
$ userList = ListStream:: of ( $ userModels )
-> filter ( fn ( $ userModel ) => $ userModel -> age > 20 ) // only need age > 20
-> map ( function ( $ userModel ) {
// only need field: age, name
return [
' age ' => $ userModel -> age ,
' name ' => $ userModel -> name ,
];
})
-> toArray ();
vdump ( $ userList );
$ pf = PipeFilters:: newWithDefaultFilters ();
$ val = $ pf -> applyString ( ' inhere ' , ' upper ' ); // 'INHERE'
$ val = $ pf -> applyString ( ' inhere ' , ' upper|substr:0,3 ' ); // 'INH'
เอ็มไอที