
рдпрд╣ рд▓реЗрдЦ рдЬреЛ рд╣рдо рд╕реАрдЦрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ: Swoft рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЪрд▓рд╛рдирд╛ред
рдпрд╣ рд▓реЗрдЦ Swoft Database ORM рдХреЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИред рдЖрдЗрдП рдЬрд╛рдиреЗрдВ Swoft рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ!
Swoft рдХреНрдпрд╛ рд╣реИ?
Swoft рдПрдХ PHP рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди microservice coroutine рдврд╛рдВрдЪрд╛ рд╣реИред рдпрд╣ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ php рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдмрди рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдЧреЛ, рдмрд┐рд▓реНрдЯ-рдЗрди рдХреЛрд░рдЯрд╛рдЗрди рд╡реЗрдм рд╕рд░реНрд╡рд░ рдФрд░ рдХреЙрд░рдЖрдЙрдЯ рдХреЙрдЗрди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рддрд░рд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкрд╛рд░рдВрдкрд░рд┐рдХ PHP-FPM рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рдЙрдб рдврд╛рдВрдЪреЗ рдХреЗ рд╕рдорд╛рди рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рдорд╛рди рдЧреЛ рднрд╛рд╖рд╛ рд╕рдВрдЪрд╛рд▓рди рднреА рд╣реИрдВред
рддреАрди рд╡рд░реНрд╖реЛрдВ рдХреЗ рд╕рдВрдЪрдп рдФрд░ рджрд┐рд╢рд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, Swoft рдиреЗ PHP рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреНрд▓рд╛рдЙрдб рдХреЛ рд╕реНрд╡рд┐рдлреНрдЯ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ, рдЬреЛ PHP рдХреЗ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдврд╛рдВрдЪреЗ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред
Github
рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдпрд╣рд╛рдБ рд╣рдо db рдШрдЯрдХ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреАрддрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
composer require swoft/db
Swoft рдбреЗрдЯрд╛рдмреЗрд╕ PDO рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбреНрд░рд╛рдЗрд╡рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡рд╣рд╛рдБ mysqld рдФрд░ PDO рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧ
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди app\bean.php
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП db рдХреЛ bean
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред
return [ 'db' => [ 'class' => Database::class, 'dsn' => 'mysql:dbname=test;host=127.0.0.1', 'username' => 'root', 'password' => '123456', 'charset' => 'utf8mb4', ], ];
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди yii2
рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рд╡рд┐рдзрд┐ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИ yii2
рдЖрдк рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ Database
рдСрдмреНрдЬреЗрдХреНрдЯ \bean('db')
рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
class
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдмреАрди рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредdsn
рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬрд╛рдирдХрд╛рд░реА рдЬрд┐рд╕реЗ рдкреАрдбреАрдУ рдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИusername
рдбреЗрдЯрд╛ рд▓реЙрдЧрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдоpassword
рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЙрдЧрд┐рди рдкрд╛рд╕рд╡рд░реНрдбcharset
рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд░реНрдг рд╕реЗрдЯ
рдпрджрд┐ рдЖрдк рдорд╛рд╕реНрдЯрд░-рд╕реНрд▓реЗрд╡ / рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ Swoft Database master рджреЗрдЦреЗрдВ
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓
рдЪреБрдирдирд╛
class UserController { public function index() { $users = DB::select('select * from users where active = ?', [1]); return (array)users; } }
select
рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧреА, рдФрд░ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕рд░рдгреА рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдорд╛рди рдЗрд╕ рддрд░рд╣ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
foreach ($users as $user) { echo $user['name']; }
рд▓реЗрди-рджреЗрди
рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЗрди-рджреЗрди рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк DB рдХреА рд▓реЗрдирджреЗрди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд▓реЗрди-рджреЗрди рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд▓реЗрдирджреЗрди рд╡рд╛рдкрд╕ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рд▓реЗрдирджреЗрди рдмрдВрдж рдХрд░рдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд▓реЗрдирджреЗрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рд▓реЗрди-рджреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЕрдм рдореИрдиреБрдЕрд▓ рд░реЛрд▓рдмреИрдХ рдпрд╛ рдХрдорд┐рдЯрдореЗрдВрдЯ рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:
DB::transaction(function () { DB::table('users')->update(['status' => 1]); DB::table('posts')->delete(); });
Github