
рдЖрдЬ рдореИрдВрдиреЗ
PHPixie рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХреНрд╕реЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 3.0 рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рд╣реИред рдЬрдм рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдХреА рдереА, рддреЛ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╣реА рд╣рдлреНрддреЗ рд▓рдЧреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рднрд╛рд░реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдФрд░ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рдХрд╛рд░рдг рд▓рдЧрднрдЧ 2 рдорд╣реАрдиреЗ рддрдХ рдЪрд▓рд╛ред рд▓реЗрдХрд┐рди рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд╛рд╣рд░ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдврд╛рдВрдЪреЗ рдпрд╛ рд╕реАрдПрдордПрд╕ рдкрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЕрдкрдиреЗ рд╕рд╛рде рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдУрдЖрд░рдПрдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдирдП рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдПрдХ рд░рд┐рд▓реАрдЬ рдХрд░реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк
рдЬреАрдердм рдкрд░ 3.0 рд╢рд╛рдЦрд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдУрдЖрд░рдПрдо рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛)ред рдЕрдм рдирдП рдлреАрдЪрд░реНрд╕ рдкрд░ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред
рдФрд╕рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдпрд╣рд╛рдВ MongoDB рдХреЗ рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдиреНрдирдд рдХреНрд╡реЗрд░реА рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: тАЬ
(A рдпрд╛ B) OR (C) рдФрд░ (D рдпрд╛ E) рдЬреИрд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп MongoDB рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
)) ", рддрд╛рдХрд┐ PHPixie рд╕реНрд╡рдпрдВ рдРрд╕реЗ рд░реВрдкреЛрдВ рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ рдЬреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдП рд╣реИрдВ:
$query ->where('name', 'Trixie') ->or_where('name', 'Tinkerbell') ->where_not('id', '>', 7) ->having('count','<', 5) ->or_having('count', 7);
рдиреЗрд╕реНрдЯреЗрдб рд▓реЙрдЬрд┐рдХ рдХреЗ рдХрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг:
$query ->where('name','Trixie') ->_or(function($builder){ $builder ->_and('id',7) ->_or('id',5) });
рдХреЙрд▓рдо рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдСрдкрд░реЗрдЯрд░:
$query->where('fairies.id','*=','pixies.id');
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде SQL рдХреЛрдб рдЖрд╡реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛:
$expr = $this->db->expr('concat(name, ?)', array('test')); $query->where($expr, 'Trixietest');
NULL рдорд╛рди рджреНрд╡рд╛рд░рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ, рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдпрд╣ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рдХрд┐ рдпрд╣ NULL рд╣реИ:
$category_id = null; $query->where('category_id', $category_id);
рдЬреЙрдп рдХреЗ рд▓рд┐рдП рдХрдард┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ .... рдкрд░рд┐рдЪрд┐рдд рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░:
$query->join('pixies');
рдПрдХ рдЙрдиреНрдирдд рдбреЗрд╡рд▓рдкрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ
- рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╣рд▓реНрдХреЗ, рдХреЛрдб рдХреЗ рдХреЗрд╡рд▓ 57 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ
- рдХреНрд╡реЗрд░реА рдмрд┐рд▓реНрдбрд░реЛрдВ рдореЗрдВ рдЙрдирдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SQL рдХреЛрдб рдореЗрдВ)ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рддреНрдпреЗрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкрд╛рд░реНрд╕рд░ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреНрд╡реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд╡рдпрдВ рдХреЛ рд╕реНрдореГрддрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рд▓реНрдХрд╛ рдФрд░ рд╕рд╕реНрддрд╛ рдмрдирд╛ рджреЗрддрд╛ рд╣реИред рдкрд╛рд░реНрд╕рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдбреАрдмрдЧ рдХрд░рдирд╛ рдФрд░ рдЙрдирдХреЗ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рд╡реИрд╕реЗ, рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд░реНрд╕рд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдореЗрдореЛрд░реА рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд░реНрд╕рд░ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдФрд░ рд╕реНрдерд┐рддрд┐ рд╕рдореВрд╣реЛрдВ (рдХрдВрдбреАрд╢рди рдЧреНрд░реБрдк рдкрд╛рд░реНрд╕рд░) рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдкреГрдердХреНрдХрд░рдг рдХрд╕реНрдЯрдо рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
- рдирд┐рд░реНрднрд░рддрд╛ рдмрдВрдзрди рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд╛рд▓рдХ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ (рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░), рдХреЛрдИ рднреА рд╡рд░реНрдЧ рдирдИ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЛ рдЙрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╣реЛрддреА рд╣реИред
- MongoDB рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░рдирд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
- SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреЛ рдкреАрдбреАрдУ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЙрдирдХреЗ рдЕрдкрдиреЗ рдЕрд▓рдЧ рдПрдбреЗрдкреНрдЯрд░ рдФрд░ рдкрд╛рд░реНрд╕рд░ рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдкреАрдбреАрдУ рдиреНрдпреВрдирддрдо рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ PHPUnit рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ 166 рдкрд░реАрдХреНрд╖рдг рдФрд░ 1151 рддреБрд▓рдирд╛рдПрдВ рджреЗрддрд╛ рд╣реИредрдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдХрд╛рдо рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЦреБрд╢реА рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдУрдЖрд░рдПрдо рдореЙрдбреНрдпреВрд▓ рдХреА рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬ рджреВрд░ рдирд╣реАрдВ рд╣реИред