CodeIgniter рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдп - рд╕реАрдПрд▓рдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╣рд╛рдпрдХ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП php рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдп рд╣реИ: getopt ред рд▓реЗрдХрд┐рди рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдпрд╣ CodeIgniter рдореЗрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред

рдФрд░ рдЬрдм рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рдерд╛, рдХреБрдЫ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рд▓рд┐рдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛, рдЬреАрдердм (hg + bitbucket рдкрд░ рдмреИрдардХрд░) рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдЬрд┐рджреНрджреА рдХреЛрдбрдЗрдЧреНрдиреЗрдВрдЯ рдФрд░ рдЙрд╕рдХреЗ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреА рдмреИрд╕рд╛рдЦреА рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ , рдЗрд╕ рдврд╛рдВрдЪреЗ рдкрд░ рдХреНрд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓реЗрдЦрди рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рдорд╛рдиреНрдп рдХрд░реЗрдВ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ) рдФрд░ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЛрдбрд┐рдЧреНрдирд┐рдЯрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



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


рджрд░рдЕрд╕рд▓, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рддреЗ рд╕рдордп, рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ CodeIgniter рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдХ Form_Validation рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред

рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:

1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, github рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ * / рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рд▓рд╛рдЗрдмреНрд░реЗрд░реА / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВред

2. рдлрд┐рд░ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдПрдВ рдЬреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
<?php if ( ! defined("BASEPATH")) exit("No direct script access allowed"); class Cli extends MY_Controller { public function __construct() { parent::__construct(); if(!$this->input->is_cli_request()) { show_404(); } } } 

рдЙрд╕ рд▓рд╛рдЗрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдирд┐рдпрдВрддреНрд░рдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рдХреЛрдИ рднреА рдЦрд▓рдирд╛рдпрдХ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗ!

3. рдЕрдм рд╣рдорд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛рдПрдВ:
  public function hello() { // Add an argument for cli interaction $argumets = array( array('alias' => '-n', 'arg' => '--name', 'help' => 'the name, we say hello to', 'type' => 1) ); // Initialize library with arguments array $this->load->library("command_line", $argumets); // Validate input if (!$this->command_line->valid_input()) { // If not valid, print some help print $this->command_line->get_help(); } else { // Else do your code print("Hello " . $this->command_line->get_argument('-n') . "!" . PHP_EOL); } } 

рдЖрдЗрдП рдЗрд╕ рдХреЛрдб рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдИ:

рдЗрд╕рд▓рд┐рдП, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡реИрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдлреЙрд░реНрдо_рд╡реИрд▓рд┐рдбреЗрд╢рди рдореЗрдВ!
 if (!$this->command_line->valid_input()) 

рдпрджрд┐ рдпрд╣ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ - рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдХреБрдЫ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ:
 print $this->command_line->get_help(); 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рддрдм рд╣рдо get_argument () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд░реНрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЙрдирдХреЗ рдкреВрд░реНрдг рдирд╛рдо рдФрд░ рдЙрдкрдирд╛рдо рд╕реЗ рджреЛрдиреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 $this->command_line->get_argument('-n') === $this->command_line->get_argument('--name') 


4. рдЕрдм рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЦреЛрд▓реЗрдВ рдФрд░ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрдЦреЗрдВ:
 php index.php cli home 

рдЪреВрдВрдХрд┐ рдЖрдкрдиреЗ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╣ рдЖрдкрдХреЛ рдПрдХ рджреЛрд╕реНрддрд╛рдирд╛ рддрд░реАрдХреЗ рд╕реЗ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:
рдЙрдкрдпреЛрдЧ: php index.php cli рд╣реИрд▓реЛ [рд╡рд┐рдХрд▓реНрдк]

рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
-n, - рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд╛рдо, рд╣рдо рд╣реИрд▓реЛ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ

рддреЛ, рдЖрдкрдХреЛ рдПрдХ рдирд╛рдо рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 php index.php cli home -n Habrahabr 

рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛:
рд╣реЗрд▓реЛ рд╣рдмреНрд░рд╣рд╛рдм!

UPD: рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рдПрдХ рд▓рдВрдмреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЙрдирд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:
 php index.php cli home -n "Petr Ivanovich" 
рд╣реИрд▓реЛ рдкреЗрдЯреНрд░реЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ!

рдирд┐рд╖реНрдХрд░реНрд╖


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

рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рднреА рдХрд╛рдлреА рдХрдЪреНрдЪрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рднреА рдмрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдкрд░ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рд╕реБрдирдХрд░ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА, рдФрд░ рдЬреАрдердм рдкрд░ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдкрд░ рдореБрдЭреЗ рднреА рдЦреБрд╢реА рд╣реЛрдЧреАред

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


All Articles