рдмреЛрд░рд┐рд╕ php рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп REPL рд╣реИ

рдЕрдЬрдЧрд░, рдорд╛рдгрд┐рдХ, рдХреНрд▓реЛрдЬрд░ рдореЗрдВ рдЖрд░рдИрдкреАрдПрд▓ рд╣реЛрддрд╛ рд╣реИред REPL - рд░реАрдб-рдЗрд╡рд▓-рдкреНрд░рд┐рдВрдЯ рд▓реВрдкред рдпрджрд┐ рдЖрдк рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЫрджреНрдо рдХреЛрдб рдкрд░ REPL рдХреНрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
while(true){ echo eval($input->get()); } 

рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдмрдирд╛рдП рдмрд┐рдирд╛ рд╣реА рдкреНрд░рд╕рдиреНрди рд░рд╣рддрд╛ рд╣реИред рдЖрдк рдПрдХ рдЧрд▓рддреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмреЛрд░рд┐рд╕ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдирдП рдХреЛрдб рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред

рдЫрд╡рд┐

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ



рд╕реНрдерд╛рдкрдирд╛


рдмреЛрд░рд┐рд╕ рд╕рдВрдЧреАрддрдХрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ:
 composer require d11wtq/boris dev-master 

рдпрд╛ рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЗ рд╕реЗ:
 git clone git://github.com/d11wtq/boris.git cd boris ./bin/boris 


рдХреЗ рдЙрдкрдпреЛрдЧ


рдЬрдм рдЖрдк рдмреЛрд░рд┐рд╕ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирд┐рдордВрддреНрд░рдг рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ:
 boris> 

рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдмреЛрд░рд┐рд╕ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд▓рдВрдмреА рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рддреЛ рдмреЛрд░рд┐рд╕ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦ рджреЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрд╢рди рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ctrl + c рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рднреА рдкрд░рд┐рдгрд╛рдо var_dump рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ var_dump рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ var_dump
 boris> $x = 1; int(1) boris> $y = 2; int(2) boris> "x + y = " . ($x + $y); string(9) "x + y = 3" boris> exit; 

рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, ctrl + D рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ctrl + D

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ



рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
 require_once 'lib/autoload.php'; $boris = new \Boris\Boris('myapp> '); $boris->setLocal(array('appContext' => $appContext)); $boris->start(); 

рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА appContext рд╡реИрд░рд┐рдПрдмрд▓ рд╡реИрд░рд┐рдПрдмрд▓ appContext рдмреЛрд░рд┐рд╕ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓рдмреИрдХ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
 $boris->onStart('$foo = 42; $bar = 2; echo "Hello Boris!\n";'); $boris->onStart(function($worker, $scope){ extract($scope); echo '$foo * $bar = ' . ($foo * $bar) . "\n"; $worker->setLocal('name', 'Chris'); }); 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмреЛрд░рд┐рд╕ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдПрдХ рдХреЙрд▓рдмреИрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдмреЛрд░рд┐рд╕ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдЙрдирдХреЗ рд╕рд╛рде рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ $name рдЪрд░ рдХреЛ рдмреЛрд░рд┐рд╕ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рднрдВрдбрд╛рд░ рдХрд╛ рд▓рд┐рдВрдХред

Source: https://habr.com/ru/post/In179145/


All Articles