рдлрд╛рд▓реНрдХрди 1.1 рдмреАрдЯрд╛


PHP рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд╛рд▓реНрдХрди 1.0 рдХреЗ рд╕рдлрд▓ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж, рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмреАрдЯрд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 1.1.0 рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ





рдХреНрд╡реЗрд░реА рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдореЗрдВ рдХреНрд╡реЗрд░реА (QueryBuilder)


рдкрд╣рд▓реЗ, рдкреЗрдЬрд┐рдиреЗрдЯрд░ рдХреЗрд╡рд▓ рдореЙрдбрд▓ рдбреЗрдЯрд╛ рдФрд░ рджреЗрд╢реА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдерд╛ред рдкреЗрдЬрд┐рдиреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм QueryBuilder рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХреНрд╡реЗрд░реА рдбреЗрдЯрд╛ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ SQL LIMIT / OFFSF рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

use Phalcon\Paginator\Adapter\QueryBuilder; $builder = $this->modelsManager->createBuilder() ->columns('id, name') ->from('Robots') ->orderBy('name'); $paginator = new Paginator(array( "builder" => $builder, "limit" => 10, "page" => 1 )); $page = $paginator->getPaginate(); 



рдмреАрдирд╕реНрдЯреЙрдХрдб рдХрддрд╛рд░ рд╕рд░реНрд╡рд░


рдмреАрдирд╕реНрдЯреЙрдХ рдХреНрдпреВ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

 //    $queue = new Phalcon\Queue\Beanstalk(array( 'host' => '192.168.0.21' )); //     ( ) $queue->put(array('proccessVideo' => 4871)); //     ( ) $queue->put( array('proccessVideo' => 4871), array('priority' => 250, 'delay' => 10, 'ttr' => 3600) ); while (($job = $queue->peekReady()) !== false) { $message = $job->getBody(); var_dump($message); $job->delete(); } 



рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди


рдлрд╛рд▓реНрдХрди рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ mcrypt PHP рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреНрд▓рд╛рд╕ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ

 //     $encryption = new Phalcon\Crypt(); $key = 'le password'; $text = 'This is a secret text'; $encrypted = $encryption->encrypt($text, $key); echo $encryption->decrypt($encrypted, $key); 



рдПрд╕реЗрдЯреНрд╕ рдореИрдиреЗрдЬрдореЗрдВрдЯ


рдЗрд╕ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ CSS рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реЗ рд╕реНрдереИрддрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 //      CSS $this->assets ->addCss('css/style.css') ->addCss('css/index.css'); //  - js- $this->assets ->addJs('js/jquery.js') ->addJs('js/bootstrap.min.js'); 


рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдПрдВ
 <html> <head> <title>Some amazing website</title> <?php $this->assets->outputCss() ?> </head> <body> <!-- ... --> <?php $this->assets->outputJs() ?> </body> </html> 



ORM рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рдж рдореЛрдб


рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ / рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдмреВрд▓рд┐рдпрди рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдмрдЪрд╛рдиреЗ () / рдмрдирд╛рдиреЗ () / рдЕрдкрдбреЗрдЯ () рддрд░реАрдХреЗ, рдЕрд░реНрдерд╛рддреНред FALSE рдЕрдЧрд░ рдХрд┐рд╕реА рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдиреЗ рдорд╛рдиреНрдпрддрд╛ рдирд╣реАрдВ рджреА рд╣реИред рдЕрдм рдЖрдк рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВ:

 use Phalcon\Mvc\Model\ValidationFailed; try { $robot = new Robots(); $robot->name = 'Bender'; $robot->save(); } catch (ValidationFailed $e) { echo 'Reason: ', $e->getMessage(); } 



рд╣реЛрд╕реНрдЯ рдирд╛рдо рд░реВрдЯрд┐рдВрдЧ


рд░реВрдЯрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдореЗрдВ, рдЕрдм рдЖрдк рд╣реЛрд╕реНрдЯ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

 $router = new Phalcon\Mvc\Router(); $router->addGet('/api/robots', array( 'module' => 'api', 'controller' => 'robots', 'action' => 'index' ))->setHostName('api.phalconphp.com'); 


рдЖрдк рдорд╛рд░реНрдЧ рд╕рдореВрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
 $group = new Phalcon\Mvc\Router(); $group->setHostName('api.phalconphp.com'); $groop->addGet('/api/robots', array( 'module' => 'api', 'controller' => 'robots', 'action' => 'index' )); $groop->addGet('/api/robots/{id}', array( 'module' => 'api', 'controller' => 'robots', 'action' => 'show' )); $router->mount($group); 



Mvc \ Micro рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдлрд╛рд▓реНрдХрди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛ-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рдЕрдиреБрд░реЛрдз рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛)ред

 $collection = new Phalcon\Mvc\Micro\Collection(); //   $collection ->setPrefix('/posts') ->setHandler(new PostsController()); //   $collection ->setPrefix('/posts') ->setHandler('PostsController', true); $collection->get('/', 'index'); $collection->get('/edit/{id}', 'edit'); $collection->delete('/delete/{id}', 'delete'); $app->mount($collection); 



рдЕрдВрддрднрд╛рд╖рдг


рдлрд╛рд▓реНрдХрди 1.1.0 рдореЗрдВ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдмрдЧ рдлрд┐рдХреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА CHANGELOG рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, рд╕рд╛рде рд╣реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рднреА рдкрдврд╝реЗрдВред

рдпрджрд┐ рдЖрдкрдиреЗ рдЕрднреА рднреА рдлрд╛рд▓реНрдХрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
 git clone http://github.com/phalcon/cphalcon cd build git checkout 1.1.0 sudo ./install 

рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдбреАрдПрд▓рдПрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдкреЗрдЬ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рд░рд┐рд▓реАрдЬ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЬреЛ рд╕рдВрдпреЛрдЧрд╡рд╢, рдлрд╛рд▓реНрдХрди рдореЗрдВ рднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ ред
рдпрджрд┐ рдЖрдк рдмрдЧ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЬреАрдердм рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдпрд╛ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди рд╣реЛрдЧрд╛ред


CPanel рдореЗрдВ рдлрд╛рд▓реНрдХрди рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░рдХреЗ рд╕рдореБрджрд╛рдп рдХреА рдорджрдж рдХрд░реЗрдВ


рдлрд╛рд▓реНрдХрди рдбреЗрд╡рд▓рдкрд░реНрд╕ cPanel рд╡реЗрдм рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдлрд╛рд▓реНрдХрди cPanel рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд┐рдлрд╛рдпрддреА рд╡рд┐рд╕реНрддрд╛рд░ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рди рдХреЗрд╡рд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдмрдврд╝реЗрдЧреА, рдмрд▓реНрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕, рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдкрдирд┐рдпреЛрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдн рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдлрд╛рд▓реНрдХрди рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдХрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдо рд▓реЛрдб рдбрд╛рд▓рддрд╛ рд╣реИред PHP рдореЗрдВ рд▓рд┐рдЦреЗ рдПрдирд╛рд▓реЙрдЧреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ред

рдЖрдк cPanel рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди рдХрд░рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
http://features.cpanel.net/responses/add-support-for-phalconphp-extension-apache-php



рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ:


PS рдкрд╛рда рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдФрд░ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ Agent_j рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдкрд░ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ рд╣реИред

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


All Articles