Slide 1

Slide 1 text

FuelPHP ࣮ફ Validation FuelPHP ษڧձ ౦ژ Vol.1 2012/07/08 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 2

Slide 2 text

ࣗݾ঺հ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 3

Slide 3 text

1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 4

Slide 4 text

•ೋٶ ࿨ಙʢχϊϛϠ ΧζϊϦʣ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 5

Slide 5 text

•ೋٶ ࿨ಙʢχϊϛϠ ΧζϊϦʣ •Twitterɿ@wakuworks 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 6

Slide 6 text

•ೋٶ ࿨ಙʢχϊϛϠ ΧζϊϦʣ •Twitterɿ@wakuworks •גࣜձࣾ ಼ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 7

Slide 7 text

•ೋٶ ࿨ಙʢχϊϛϠ ΧζϊϦʣ •Twitterɿ@wakuworks •גࣜձࣾ ಼ •PHP ྺ̏೥͘Β͍ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 8

Slide 8 text

ࣗ෼ʹͱͬͯ ͕ ॳϑϨʔϜϫʔΫ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 9

Slide 9 text

ΞδΣϯμ 1. جຊతͳ࢖͍ํ 2. Τϥʔϝοηʔδ 3. ϧʔϧʹ͍ͭͯ 1. ಠࣗόϦσʔγϣϯ 2. ಠࣗϑΟϧλ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 10

Slide 10 text

ΞδΣϯμ 4. Ԡ༻ 1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 4. ZendFramework Λ࢖͏ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 11

Slide 11 text

ΞδΣϯμ 5. ͓·͚ 6. ·ͱΊ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 12

Slide 12 text

1. جຊతͳ࢖͍ํ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 13

Slide 13 text

1. جຊతͳ࢖͍ํ 24 $val = \Validation::forge(); 25 26 $val->add('name', '໊લ') 27 ->add_rule('trim') 28 ->add_rule('required') 29 ->add_rule('max_length', 20); 30 31 $val->add_field('email', 'ϝʔϧΞυϨε', 32 'trim|required|valid_email'); 33 34 if ($val->run()) 35 { 36 // ੒ޭ࣌ͷॲཧ 37 } 38 else 39 { 40 // ࣦഊ࣌ͷॲཧ 41 } 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 14

Slide 14 text

1. جຊతͳ࢖͍ํ 24 $val = \Validation::forge(); → Validation ΦϒδΣΫτͷੜ੒ → add ϝιουͰϑΟʔϧυ໊ͱϥϕϧͷ௥Ճ ɹ ଓ͍ͯɺ add_ruleϝιουͰϧʔϧ ʢݕূɾ੔ܗʣ Λ௥Ճ 26 $val->add('name', '໊લ') 27 ->add_rule('trim') 28 ->add_rule('required') 29 ->add_rule('max_length', 20); 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 15

Slide 15 text

1. جຊతͳ࢖͍ํ → add_field ϝιου͸ɺ ɹ ϑΟʔϧυ໊ɺ ϥϕϧɺ ϧʔϧ ʢݕূɾ੔ܗʣ ΛҰׅࢦఆ → run ϝιουͰόϦσʔγϣϯ࣮ߦɻ ɹ ໰୊͕ແ͚Ε͹ TRUE Λฦ͢ɻ 31 $val->add_field('email', 'ϝʔϧΞυϨε', 32 'trim|required|valid_email'); 34 if ($val->run()) 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 16

Slide 16 text

run() ࣮ߦޙ 1. جຊతͳ࢖͍ํ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 17

Slide 17 text

run() ࣮ߦޙ • $val->error() ͰɺݕূΤϥʔͷऔಘ 1. جຊతͳ࢖͍ํ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 18

Slide 18 text

run() ࣮ߦޙ • $val->error() ͰɺݕূΤϥʔͷऔಘ • $val->validated() Ͱɺ੔ܗޙͷ஋ͷऔಘ ͨͩ͠ɺ్தͰݕূΤϥʔʹͳΔͱɺ ͦͷϑΟʔϧυͷ஋Λฦͯ͘͠Εͳ͍ɻ 1. جຊతͳ࢖͍ํ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 19

Slide 19 text

34 $errors = !$val->run() ? $val->error() : array(); 35 $values = $val->validated(); 36 37 foreach ($errors as $key => $error) 38 { 39 $values[$key] = $error->value; 40 } ࣗ෼ͷ৔߹ɺΤϥʔ͕ൃੜͯ͠΋੔ܗ్தͷ஋͸ཉ͍͠ͷ ͰɺԼهͷ༷ʹ͍ͯ͠·͢ɻ 1. جຊతͳ࢖͍ํ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 20

Slide 20 text

34 $errors = !$val->run() ? $val->error() : array(); 35 $values = $val->validated(); 36 37 foreach ($errors as $key => $error) 38 { 39 $values[$key] = $error->value; 40 } ࣗ෼ͷ৔߹ɺΤϥʔ͕ൃੜͯ͠΋੔ܗ్தͷ஋͸ཉ͍͠ͷ ͰɺԼهͷ༷ʹ͍ͯ͠·͢ɻ 1. جຊతͳ࢖͍ํ 1.2.1 @wakuworks גࣜձࣾ Τϥʔൃੜ࣌ͷ஋ 12೥7݄8೔೔༵೔

Slide 21

Slide 21 text

2. Τϥʔϝοηʔδ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 22

Slide 22 text

76 'language' => 'ja', 77 'language_fallback' => 'en', 78 'locale' => 'ja_JP', 1.2.1 @wakuworks גࣜձࣾ 2. Τϥʔϝοηʔδ APPPATH/config/config.php ΤϥʔϝοηʔδΛઃఆ͢ΔલʹɺݴޠΛ೔ຊޠʹมߋ 12೥7݄8೔೔༵೔

Slide 23

Slide 23 text

76 'language' => 'ja', 77 'language_fallback' => 'en', 78 'locale' => 'ja_JP', 1.2.1 @wakuworks גࣜձࣾ 2. Τϥʔϝοηʔδ APPPATH/config/config.php ΤϥʔϝοηʔδΛઃఆ͢ΔલʹɺݴޠΛ೔ຊޠʹมߋ ͜ΕͰ APPPATH/lang/ja Λݟʹߦ͘Α͏ʹͳΔɻ ݴޠϑΝΠϧ͕ແ͚Ε͹ɺࣗಈతʹ language_fallback Ͱઃ ఆ͍ͯ͠Δ en Λݟʹߦ͘ͷͰ҆৺ 12೥7݄8೔೔༵೔

Slide 24

Slide 24 text

σϑΥϧτͷΤϥʔϝοηʔδ Λ validation.php ʹઃఆ͓ͯ͘͠ 2. Τϥʔϝοηʔδ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 25

Slide 25 text

2. Τϥʔϝοηʔδ 1 ':label ͸ඞਢ߲໨Ͱ͢ɻ', 4 'min_length' => ':label ͕ :param:1 จࣈະຬͰ͢ɻ', 5 'max_length' => ':label ͕ :param:1 จࣈΛ௒͍͑ͯ·͢ɻ', 6 'exact_length' => ':label ͕ :param:1 จࣈͰ͸͋Γ·ͤΜɻ', 7 'match_value' => ':label ͸ :param:1 ͱҰக͠·ͤΜɻ', 8 'match_pattern' => ':label ͸ :param:1 ͱҰக͢ΔύλʔϯͰ͸͋Γ·ͤΜɻ', 9 'match_field' => ':label ͸ :param:1 ͱҟͳΓ·͢ɻ', 10 'valid_email' => ':label ͸༗ޮͳϝʔϧΞυϨεͰ͸͋Γ·ͤΜɻ', 11 'valid_emails' => ':label ʹ༗ޮͰͳ͍ϝʔϧΞυϨεؚ͕·Ε͍ͯ·͢ɻ', 12 'valid_url' => ':label ͸༗ޮͳURLͰ͸͋Γ·ͤΜɻ', 13 'valid_ip' => ':label ͸༗ޮͳIPΞυϨεͰ͸͋Γ·ͤΜɻ', 14 'numeric_min' => ':label ͷ஋͕ :param:1 ະຬͰ͢ɻ', 15 'numeric_max' => ':label ͷ஋͕ :param:1 Λ௒͍͑ͯ·͢ɻ', 16 'valid_string' => ':label ʹෆਖ਼ͳจࣈؚ͕·Ε͍ͯ·͢ɻ', 17 ); APPPATH/lang/ja/validation.php 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 26

Slide 26 text

σϑΥϧτΛઃఆ͓ͯ͘͠ͱ ϞδϡʔϧΛ࡞ͬͨ࣌ʹศར 2. Τϥʔϝοηʔδ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 27

Slide 27 text

APPPATH/modules/hoge/lang/ja/validation.php 1 'hogeϞδϡʔϧ༻ͷΤϥʔϝοηʔδ', 4 ); ͜ͷ৔߹ɺrequired Ҏ֎ͷΤϥʔϝοηʔδ͸ σϑΥϧτ͕࢖ΘΕΔɻ 2. Τϥʔϝοηʔδ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 28

Slide 28 text

3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 29

Slide 29 text

26 $val->add('name', '໊લ') 27 ->add_rule('trim') 28 ->add_rule('required') 29 ->add_rule('max_length', 20); 31 $val->add_field('email', 'ϝʔϧΞυϨε', 32 'trim|required|valid_email'); 3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 30

Slide 30 text

26 $val->add('name', '໊લ') 27 ->add_rule('trim') 28 ->add_rule('required') 29 ->add_rule('max_length', 20); 31 $val->add_field('email', 'ϝʔϧΞυϨε', 32 'trim|required|valid_email'); ϧʔϧ 3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 31

Slide 31 text

26 $val->add('name', '໊લ') 27 ->add_rule('trim') 28 ->add_rule('required') 29 ->add_rule('max_length', 20); 31 $val->add_field('email', 'ϝʔϧΞυϨε', 32 'trim|required|valid_email'); ϧʔϧ ύΠϓͭͳ͗ͷϧʔϧ 3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 32

Slide 32 text

3. ϧʔϧʹ͍ͭͯ ೋ௨Γͷϧʔϧ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 33

Slide 33 text

3. ϧʔϧʹ͍ͭͯ ೋ௨Γͷϧʔϧ • ݕূʢόϦσʔτʣ ໭Γ஋͕ BOOL Ͱ͋Δ৔߹ 1.2.1 @wakuworks גࣜձࣾ $val->add('id', 'Ϣʔβʔ ID') ->add_rule(function($val) { return !!$val; }); 12೥7݄8೔೔༵೔

Slide 34

Slide 34 text

3. ϧʔϧʹ͍ͭͯ ೋ௨Γͷϧʔϧ • ݕূʢόϦσʔτʣ ໭Γ஋͕ BOOL Ͱ͋Δ৔߹ 1.2.1 @wakuworks גࣜձࣾ $val->add('id', 'Ϣʔβʔ ID') ->add_rule(function($val) { return !!$val; }); TRUE or FALSE 12೥7݄8೔೔༵೔

Slide 35

Slide 35 text

3. ϧʔϧʹ͍ͭͯ ೋ௨Γͷϧʔϧ • ݕূʢόϦσʔτʣ ໭Γ஋͕ BOOL Ͱ͋Δ৔߹ • ੔ܗʢϑΟϧλʣ ໭Γ஋͕ BOOL Ͱ͸ͳ͍৔߹ 1.2.1 @wakuworks גࣜձࣾ $val->add('id', 'Ϣʔβʔ ID') ->add_rule(function($val) { return !!$val; }); $val->add('id', 'Ϣʔβʔ ID') ->add_rule(function($val) { return trim($val); }); TRUE or FALSE 12೥7݄8೔೔༵೔

Slide 36

Slide 36 text

add_rule Ͱࢦఆग़དྷΔϧʔϧ 3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 37

Slide 37 text

add_rule Ͱࢦఆग़དྷΔϧʔϧ • FuelPHP ଆͰ༻ҙ͍ͯ͠Δϧʔϧ 3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 38

Slide 38 text

add_rule Ͱࢦఆग़དྷΔϧʔϧ • FuelPHP ଆͰ༻ҙ͍ͯ͠Δϧʔϧ • add_callable, add_model Ͱొ࿥ͨ͠ϧʔϧ 3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 39

Slide 39 text

add_rule Ͱࢦఆग़དྷΔϧʔϧ • FuelPHP ଆͰ༻ҙ͍ͯ͠Δϧʔϧ • add_callable, add_model Ͱొ࿥ͨ͠ϧʔϧ • ίʔϧόοΫ ϏϧτΠϯɺϢʔβఆٛؔ਺ɺ ΠϯελϯεϝιουɺΫϥεϝιουɺແ໊ؔ਺ 3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 40

Slide 40 text

3. ϧʔϧʹ͍ͭͯ add_field Ͱࢦఆग़དྷΔϧʔϧ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 41

Slide 41 text

3. ϧʔϧʹ͍ͭͯ add_field Ͱࢦఆग़དྷΔϧʔϧ • FuelPHP ଆͰ༻ҙ͍ͯ͠Δϧʔϧ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 42

Slide 42 text

3. ϧʔϧʹ͍ͭͯ add_field Ͱࢦఆग़དྷΔϧʔϧ • FuelPHP ଆͰ༻ҙ͍ͯ͠Δϧʔϧ • add_callable, add_model Ͱొ࿥ͨ͠ϧʔϧ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 43

Slide 43 text

3. ϧʔϧʹ͍ͭͯ add_field Ͱࢦఆग़དྷΔϧʔϧ • FuelPHP ଆͰ༻ҙ͍ͯ͠Δϧʔϧ • add_callable, add_model Ͱొ࿥ͨ͠ϧʔϧ • ίʔϧόοΫ ϏϧτΠϯɺϢʔβఆٛؔ਺ɺ ΠϯελϯεϝιουɺΫϥεϝιουɺແ໊ؔ਺ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 44

Slide 44 text

• required • min_length • max_length • exact_length • match_value • match_pattern • match_field 3. ϧʔϧʹ͍ͭͯ 1.2.1 @wakuworks גࣜձࣾ FuelPHP ଆ͕༻ҙ͍ͯ͠Δϧʔϧ • valid_email • valid_emails • valid_url • valid_ip • numeric_min • numeric_max • valid_string 12೥7݄8೔೔༵೔

Slide 45

Slide 45 text

3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 46

Slide 46 text

add_callable, add_model Λ༻͍Δ৔߹ 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 47

Slide 47 text

1

Slide 48

Slide 48 text

1

Slide 49

Slide 49 text

24 $val = \Validation::forge(); 25 $val->add_callable('MyRules'); 26 27 $val->add('name', '໊લ') 28 ->add_rule('is_upper'); 29 $val->add_field('email', 'ϝʔϧΞυϨε', 'is_upper'); 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ APPPATH/lang/ja/validation.php 1 ':label͸େจࣈͰೖྗ͍ͯͩ͘͠͞ɻ', 4 ); 12೥7݄8೔೔༵೔

Slide 50

Slide 50 text

24 $val = \Validation::forge(); 25 $val->add_callable('MyRules'); 26 27 $val->add('name', '໊લ') 28 ->add_rule('is_upper'); 29 $val->add_field('email', 'ϝʔϧΞυϨε', 'is_upper'); 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ Ϋϥε໊·ͨ͸ͦͷΠϯελϯεΛೖΕΔ APPPATH/lang/ja/validation.php 1 ':label͸େจࣈͰೖྗ͍ͯͩ͘͠͞ɻ', 4 ); 12೥7݄8೔೔༵೔

Slide 51

Slide 51 text

24 $val = \Validation::forge(); 25 $val->add_callable('MyRules'); 26 27 $val->add('name', '໊લ') 28 ->add_rule('is_upper'); 29 $val->add_field('email', 'ϝʔϧΞυϨε', 'is_upper'); 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ Ϋϥε໊·ͨ͸ͦͷΠϯελϯεΛೖΕΔ ௥Ճͨ͠ϧʔϧ APPPATH/lang/ja/validation.php 1 ':label͸େจࣈͰೖྗ͍ͯͩ͘͠͞ɻ', 4 ); 12೥7݄8೔೔༵೔

Slide 52

Slide 52 text

ϝιουΛ༻͍Δ৔߹ 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 53

Slide 53 text

1 add('id', 'Ϣʔβʔ ID') 32 ->add_rule(array('MyRules', 'is_upper')) 33 ->add_rule(array(new MyRules(), 'is_upper')); 12೥7݄8೔೔༵೔

Slide 54

Slide 54 text

APPPATH/lang/ja/validation.php 1 ':label͸େจࣈͰೖྗ͍ͯͩ͘͠͞ɻ', 4 ); 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 55

Slide 55 text

ແ໊ؔ਺Λ༻͍Δ৔߹ 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 56

Slide 56 text

31 $val->add('id', 'Ϣʔβʔ ID') 32 ->add_rule(function($val) { 33 if ($val !== strtolower($val)) 34 { 35 \Validation::active()->set_message( 36 'closure', 37 ':label͸খจࣈͰೖྗ͍ͯͩ͘͠͞ɻ'); 38 return false; 39 } 40 return true; 41 }); 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 57

Slide 57 text

31 $val->add('id', 'Ϣʔβʔ ID') 32 ->add_rule(function($val) { 33 if ($val !== strtolower($val)) 34 { 35 \Validation::active()->set_message( 36 'closure', 37 ':label͸খจࣈͰೖྗ͍ͯͩ͘͠͞ɻ'); 38 return false; 39 } 40 return true; 41 }); 3-1. ಠࣗόϦσʔγϣϯ 1.2.1 @wakuworks גࣜձࣾ ϧʔϧ໊͕ closure ʹͳΔ఺ʹ஫໨ 12೥7݄8೔೔༵೔

Slide 58

Slide 58 text

3-2. ಠࣗϑΟϧλ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 59

Slide 59 text

ϝιουΛ༻͍Δ৔߹ 3-2. ಠࣗϑΟϧλ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 60

Slide 60 text

3-2. ಠࣗϑΟϧλ 1 add('id', 'Ϣʔβʔ ID') 32 ->add_rule(array('MyRules', 'to_upper')) 33 ->add_rule(array(new MyRules(), 'to_lower')); 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 61

Slide 61 text

ແ໊ؔ਺Λ༻͍Δ৔߹ 31 $val->add('id', 'Ϣʔβʔ ID') 32 ->add_rule(function($val) { 33 return strtolower(trim($val)); 34 }); 3-2. ಠࣗϑΟϧλ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 62

Slide 62 text

ݸਓతʹϑΟϧλΛ·ͱΊͨ Ϋϥε͕͋Δͱૉఢͩͱࢥ͏ 3-2. ಠࣗϑΟϧλ 1.2.1 @wakuworks גࣜձࣾ ޙɺͦΕΛެ։ͯ͘͠ΕΔͱ΋ͬͱૉఢ 12೥7݄8೔೔༵೔

Slide 63

Slide 63 text

3-2. ಠࣗϑΟϧλ 1.2.1 @wakuworks גࣜձࣾ 1

Slide 64

Slide 64 text

3-2. ಠࣗϑΟϧλ 1.2.1 @wakuworks גࣜձࣾ 24 $val = \Validation::forge(); 25 26 $val->add('age', '೥ྸ') 27 ->add_rule(array('Filter', 'settype'), 'integer'); 28 29 $errors = !$val->run() ? $val->error() : array(); 30 $values = $val->validated(); 31 32 foreach ($errors as $key => &$error) 33 { 34 $values[$key] = $error->value; 35 $error = ''.$error; 36 } ࢖ͬͯΈΔͱ͜Μͳײ͡ 12೥7݄8೔೔༵೔

Slide 65

Slide 65 text

3-2. ಠࣗϑΟϧλ 1.2.1 @wakuworks גࣜձࣾ 24 $val = \Validation::forge(); 25 26 $val->add('age', '೥ྸ') 27 ->add_rule(array('Filter', 'settype'), 'integer'); 28 29 $errors = !$val->run() ? $val->error() : array(); 30 $values = $val->validated(); 31 32 foreach ($errors as $key => &$error) 33 { 34 $values[$key] = $error->value; 35 $error = ''.$error; 36 } ࢖ͬͯΈΔͱ͜Μͳײ͡ 12೥7݄8೔೔༵೔

Slide 66

Slide 66 text

4. Ԡ༻ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 67

Slide 67 text

4-1. ϑΟϧλʹΑΔฐ֐ ͱͦͷରॲྫ 4. Ԡ༻ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 68

Slide 68 text

match_field Ͱର৅ͷ ϑΟʔϧυʹϑΟϧλ͕ ֻ͔͍ͬͯΔͱΤϥʔͱͳΔ ৔߹͕͋Δ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 69

Slide 69 text

1.2.1 @wakuworks גࣜձࣾ 7 $post = array( 8 'email1' => ' [email protected] ', 9 'email2' => ' [email protected] ' 10 ); 11 12 $val = \Validation::forge(); 13 14 $val->add('email1', 'ϝʔϧΞυϨε') 15 ->add_rule('trim') 16 ->add_rule('required') 17 ->add_rule('valid_email'); 18 19 $val->add('email2', 'ϝʔϧΞυϨεʢ֬ೝʣ') 20 ->add_rule('trim') 21 ->add_rule('required') 22 ->add_rule('match_field', 'email1'); 23 24 $val->run($post); ΤϥʔͱͳΔྫɿ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 70

Slide 70 text

trim ޙɺಉ͡஋ʹͳΔʹ΋ ؔΘΒͣΤϥʔ 1.2.1 @wakuworks גࣜձࣾ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 71

Slide 71 text

Կނʁ 1.2.1 @wakuworks גࣜձࣾ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 72

Slide 72 text

ൺֱ͕໰୊ 1.2.1 @wakuworks גࣜձࣾ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 73

Slide 73 text

680 public function _validation_match_field($val, $field) 681 { 682 if ($this->input($field) !== $val) 683 { 684 $validating = $this->active_field(); 685 throw new \Validation_Error($validating, $val, array('match_field' => array($field)), array($this- >field($field)->label)); 686 } 687 688 return true; 689 } 1.2.1 @wakuworks גࣜձࣾ COREPATH/classes/validation.php 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 74

Slide 74 text

680 public function _validation_match_field($val, $field) 681 { 682 if ($this->input($field) !== $val) 683 { 684 $validating = $this->active_field(); 685 throw new \Validation_Error($validating, $val, array('match_field' => array($field)), array($this- >field($field)->label)); 686 } 687 688 return true; 689 } 1.2.1 @wakuworks גࣜձࣾ COREPATH/classes/validation.php ϑΟϧλલͷ஋Ͱൺֱ͞ΕͯΔ… 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 75

Slide 75 text

৽͍͠ϧʔϧΛ࡞Δ 1.2.1 @wakuworks גࣜձࣾ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 76

Slide 76 text

1 validated($field); 9 if (!$field_val) 10 { 11 $error = $active->error($field); 12 $field_val = $error 13 ? $error->value 14 : $active->input($field); 15 } 16 return $field_val === $val; 17 } 18 } 1.2.1 @wakuworks גࣜձࣾ APPATH/classes/myrules.php 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 77

Slide 77 text

39 $post = array( 40 'email1' => ' [email protected] ', 41 'email2' => ' [email protected] ' 42 ); 43 44 $val = \Validation::forge(); 45 $val->add_callable('MyRules'); 46 47 $val->add('email1', 'ϝʔϧΞυϨε') 48 ->add_rule('trim') 49 ->add_rule('required') 50 ->add_rule('valid_email'); 51 52 $val->add('email2', 'ϝʔϧΞυϨεʢ֬ೝʣ') 53 ->add_rule('trim') 54 ->add_rule('required') 55 ->add_rule('match_validated_field', 'email1'); 56 57 $val->run($post); 1.2.1 @wakuworks גࣜձࣾ ৽͍͠ϧʔϧʹมߋޙɿ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 78

Slide 78 text

39 $post = array( 40 'email1' => ' [email protected] ', 41 'email2' => ' [email protected] ' 42 ); 43 44 $val = \Validation::forge(); 45 $val->add_callable('MyRules'); 46 47 $val->add('email1', 'ϝʔϧΞυϨε') 48 ->add_rule('trim') 49 ->add_rule('required') 50 ->add_rule('valid_email'); 51 52 $val->add('email2', 'ϝʔϧΞυϨεʢ֬ೝʣ') 53 ->add_rule('trim') 54 ->add_rule('required') 55 ->add_rule('match_validated_field', 'email1'); 56 57 $val->run($post); 1.2.1 @wakuworks גࣜձࣾ ৽͍͠ϧʔϧʹมߋޙɿ ϧʔϧͷ௥Ճ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 79

Slide 79 text

39 $post = array( 40 'email1' => ' [email protected] ', 41 'email2' => ' [email protected] ' 42 ); 43 44 $val = \Validation::forge(); 45 $val->add_callable('MyRules'); 46 47 $val->add('email1', 'ϝʔϧΞυϨε') 48 ->add_rule('trim') 49 ->add_rule('required') 50 ->add_rule('valid_email'); 51 52 $val->add('email2', 'ϝʔϧΞυϨεʢ֬ೝʣ') 53 ->add_rule('trim') 54 ->add_rule('required') 55 ->add_rule('match_validated_field', 'email1'); 56 57 $val->run($post); 1.2.1 @wakuworks גࣜձࣾ ৽͍͠ϧʔϧʹมߋޙɿ ϧʔϧͷ௥Ճ ϧʔϧΛࢦఆ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 80

Slide 80 text

1 ':label ͸ :param:1 ͱҰக͠·ͤΜɻ', 4 ); 1.2.1 @wakuworks גࣜձࣾ APPPATH/lang/ja/validation.php ৽͍͠ϧʔϧʹର͠ɺΤϥʔϝοηʔδΛઃఆ͓ͯ͘͠ɻ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 81

Slide 81 text

͜ΕͰϑΟϧλޙͷ஋Ͱ ൺֱΛͯ͘͠Ε·͢ɻ 1.2.1 @wakuworks גࣜձࣾ 4-1. ϑΟϧλʹΑΔฐ֐ͱͦͷରॲྫ 12೥7݄8೔೔༵೔

Slide 82

Slide 82 text

4-2. ಉ͡ϧʔϧͰ ෳ਺ͷΤϥʔϝοηʔδ 4. Ԡ༻ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 83

Slide 83 text

໊લͱੑผʹ required ͷϧʔϧΛઃఆ͍ͯͨ͠ͱͯ͠ɺ Լͷ༷ʹผʑͷΤϥʔϝοηʔδΛग़͍ͨ͠ͷ͚ͩͲ… required ໊લʢೖྗܥʣ→ʮ:labelΛೖྗ͍ͯͩ͘͠͞ɻʯ ੑผʢબ୒ܥʣ→ʮ:labelΛબ୒͍ͯͩ͘͠͞ɻʯ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 84

Slide 84 text

validation.php ʹ ෳ਺ΤϥʔϝοηʔδΛ ઃఆ͢Δࣄ͸ग़དྷͳ͍ 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 85

Slide 85 text

࣮ࡍࣗ෼͕࢖͍ͬͯΔํ๏ 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 86

Slide 86 text

1 ':labelΛೖྗ͍ͯͩ͘͠͞', 4 ); APPPATH/lang/ja/validation.php 1 array( 4 'required' => ':labelΛબ୒͍ͯͩ͘͠͞ɻ', 5 ), 6 ); APPPATH/lang/ja/error.php 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 87

Slide 87 text

1 ':labelΛೖྗ͍ͯͩ͘͠͞', 4 ); APPPATH/lang/ja/validation.php 1 array( 4 'required' => ':labelΛબ୒͍ͯͩ͘͠͞ɻ', 5 ), 6 ); APPPATH/lang/ja/error.php ϑΟʔϧυ໊ 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 88

Slide 88 text

1 ':labelΛೖྗ͍ͯͩ͘͠͞', 4 ); APPPATH/lang/ja/validation.php 1 array( 4 'required' => ':labelΛબ୒͍ͯͩ͘͠͞ɻ', 5 ), 6 ); APPPATH/lang/ja/error.php ϑΟʔϧυ໊ ϧʔϧ໊ 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 89

Slide 89 text

32 $errors = !$val->run($post) ? $val->error() : array(); 33 $values = $val->validated(); 34 35 $err = \Lang::load('error'); 36 foreach ($errors as $key => &$error) 37 { 38 $values[$key] = $error->value; 39 if (isset($err[$key][$error->rule])) 40 { 41 $error = $error->get_message( 42 $err[$key][$error->rule]); 43 } 44 else 45 { 46 $error = ''.$error; 47 } 48 } 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 90

Slide 90 text

32 $errors = !$val->run($post) ? $val->error() : array(); 33 $values = $val->validated(); 34 35 $err = \Lang::load('error'); 36 foreach ($errors as $key => &$error) 37 { 38 $values[$key] = $error->value; 39 if (isset($err[$key][$error->rule])) 40 { 41 $error = $error->get_message( 42 $err[$key][$error->rule]); 43 } 44 else 45 { 46 $error = ''.$error; 47 } 48 } ݴޠϑΝΠϧͷಡΈࠐΈ 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 91

Slide 91 text

32 $errors = !$val->run($post) ? $val->error() : array(); 33 $values = $val->validated(); 34 35 $err = \Lang::load('error'); 36 foreach ($errors as $key => &$error) 37 { 38 $values[$key] = $error->value; 39 if (isset($err[$key][$error->rule])) 40 { 41 $error = $error->get_message( 42 $err[$key][$error->rule]); 43 } 44 else 45 { 46 $error = ''.$error; 47 } 48 } ݴޠϑΝΠϧͷಡΈࠐΈ Τϥʔϝοηʔδͷऔಘ 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 92

Slide 92 text

΋͏Ұͭํ๏͕͋Γ·͕͢ɺ ௕͍ͷͰׂѪ http://qiita.com/items/9d219b7300f851f9ba4f ↑ͪ͜Βʹιʔείʔυࡌ͍ͤͯΔͷͰɺ ࢼͯ͠Έ͍ͯͩ͘͞ɻ 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 93

Slide 93 text

͋͘·Ͱ΋ࢀߟఔ౓ʹ 1.2.1 @wakuworks גࣜձࣾ 4-2. ಉ͡ϧʔϧͰෳ਺ͷΤϥʔϝοηʔδ 12೥7݄8೔೔༵೔

Slide 94

Slide 94 text

4-3. ഑ྻΛ όϦσʔτ͢Δʹ͸ʁ 4. Ԡ༻ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 95

Slide 95 text

4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 14 15

16

17

18

19 ୯७ʹ name ΛೖΕͯ 26 $val->add('hoge[0]'); 27 $val->add('hoge[1]'); 28 $val->add('hoge[2]'); 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 96

Slide 96 text

4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 14 15

16

17

18

19 ୯७ʹ name ΛೖΕͯ RUN 26 $val->add('hoge[0]'); 27 $val->add('hoge[1]'); 28 $val->add('hoge[2]'); 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 97

Slide 97 text

4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 14 15

16

17

18

19 ୯७ʹ name ΛೖΕͯ RUN ஋͕औΕͳ͍… 26 $val->add('hoge[0]'); 27 $val->add('hoge[1]'); 28 $val->add('hoge[2]'); 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 98

Slide 98 text

໰୊͸ϑΟʔϧυ໊ 1.2.1 @wakuworks גࣜձࣾ 4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 12೥7݄8೔೔༵೔

Slide 99

Slide 99 text

υοτʢ.ʣͭͳ͗ͷ ϑΟʔϧυ໊ʹͯ͋͛͠Δ 1.2.1 @wakuworks גࣜձࣾ 4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 12೥7݄8೔೔༵೔

Slide 100

Slide 100 text

26 $val->add('hoge.0'); 27 $val->add('hoge.1'); 28 $val->add('hoge.2'); 1.2.1 @wakuworks גࣜձࣾ 4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 12೥7݄8೔೔༵೔

Slide 101

Slide 101 text

͜ͷࢦఆํ๏͸ Config Ͱ༻͍͍ͯΔ΋ͷͱಉ͡ɻ ͝ஸೡʹΩʔ΋มΘͬͯΔͷͰ஫ҙ͕ඞཁɻ 26 $val->add('hoge.0'); 27 $val->add('hoge.1'); 28 $val->add('hoge.2'); 1.2.1 @wakuworks גࣜձࣾ 4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 12೥7݄8೔೔༵೔

Slide 102

Slide 102 text

͜ͷࢦఆํ๏͸ Config Ͱ༻͍͍ͯΔ΋ͷͱಉ͡ɻ ͝ஸೡʹΩʔ΋มΘͬͯΔͷͰ஫ҙ͕ඞཁɻ array(3) { ["hoge.0"]=> string(5) "hoge0" ["hoge.1"]=> string(5) "hoge1" ["hoge.2"]=> string(5) "hoge2" } ※औಘྫ 26 $val->add('hoge.0'); 27 $val->add('hoge.1'); 28 $val->add('hoge.2'); 1.2.1 @wakuworks גࣜձࣾ 4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 12೥7݄8೔೔༵೔

Slide 103

Slide 103 text

ͪͳΈʹɺϧʔϧ͸ݸผͰ͔͠ઃఆग़དྷͳ͍ 26 for ($i = 0; $i < 3; $i++) 27 { 28 $val->add('hoge.'.$i)->add_rule('required'); 29 } 1.2.1 @wakuworks גࣜձࣾ 4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 12೥7݄8೔೔༵೔

Slide 104

Slide 104 text

ͪͳΈʹɺϧʔϧ͸ݸผͰ͔͠ઃఆग़དྷͳ͍ 26 for ($i = 0; $i < 3; $i++) 27 { 28 $val->add('hoge.'.$i)->add_rule('required'); 29 } ͱͯ΋໘౗͍͘͞… 1.2.1 @wakuworks גࣜձࣾ 4-3. ഑ྻΛόϦσʔτ͢Δʹ͸ʁ 12೥7݄8೔೔༵೔

Slide 105

Slide 105 text

4-4. Λ࢖͏ 4. Ԡ༻ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 106

Slide 106 text

·ͣ͸४උ 1.2.1 @wakuworks גࣜձࣾ 4-4. Λ࢖͏ 12೥7݄8೔೔༵೔

Slide 107

Slide 107 text

αΠτ͔ΒιʔεҰࣜΛμ΢ϯϩʔυ ԼهΛࢀߟʹඞཁͳ෺͚ͩΛೖΕ·͢ɻ http://framework.zend.com/manual/ja/ requirements.introduction.html#requirement s.dependencies ※ ࠓճ͸ Ver. 1.11.12 Ͱઆ໌ ʢ2 ܥͰ΋Մʣ 1.2.1 @wakuworks גࣜձࣾ 4-4. Λ࢖͏ 12೥7݄8೔೔༵೔

Slide 108

Slide 108 text

▾ fuel/ ▾ app/ ▸ cache/ ▸ classes/ ▸ config/ ▸ lang/ ▸ logs/ ▸ migrations/ ▸ modules/ ▸ tasks/ ▸ tmp/ ▾ vendor/ ▾ Zend/ ▾ library/ ▾ Zend/ ▸ Date/ ▸ Filter/ ▸ Loader/ ▸ Locale/ ▸ Validate/ Date.php Exception.php Filter.php Loader.php Locale.php Registry.php Validate.php ▸ views/ bootstrap.php ▸ core/ ▸ packages/ LICENSE ▸ public/ αΠτ͔ΒιʔεҰࣜΛμ΢ϯϩʔυ ԼهΛࢀߟʹඞཁͳ෺͚ͩΛೖΕ·͢ɻ http://framework.zend.com/manual/ja/ requirements.introduction.html#requirement s.dependencies ※ ࠓճ͸ Ver. 1.11.12 Ͱઆ໌ ʢ2 ܥͰ΋Մʣ 1.2.1 @wakuworks גࣜձࣾ 4-4. Λ࢖͏ 12೥7݄8೔೔༵೔

Slide 109

Slide 109 text

▾ fuel/ ▾ app/ ▸ cache/ ▸ classes/ ▸ config/ ▸ lang/ ▸ logs/ ▸ migrations/ ▸ modules/ ▸ tasks/ ▸ tmp/ ▾ vendor/ ▾ Zend/ ▾ library/ ▾ Zend/ ▸ Date/ ▸ Filter/ ▸ Loader/ ▸ Locale/ ▸ Validate/ Date.php Exception.php Filter.php Loader.php Locale.php Registry.php Validate.php ▸ views/ bootstrap.php ▸ core/ ▸ packages/ LICENSE ▸ public/ αΠτ͔ΒιʔεҰࣜΛμ΢ϯϩʔυ ԼهΛࢀߟʹඞཁͳ෺͚ͩΛೖΕ·͢ɻ http://framework.zend.com/manual/ja/ requirements.introduction.html#requirement s.dependencies ※ ࠓճ͸ Ver. 1.11.12 Ͱઆ໌ ʢ2 ܥͰ΋Մʣ 1.2.1 @wakuworks גࣜձࣾ 4-4. Λ࢖͏ 12೥7݄8೔೔༵೔

Slide 110

Slide 110 text

10 set_include_path(get_include_path() 11 .':'.APPPATH.'vendor/Zend/library/'); 12 13 Autoloader::add_classes(array( 14 // Add classes you want to override here 15 // Example: 'View' => APPPATH.'classes/view.php', 16 'Zend_Loader_Autoloader' => APPPATH 17 .'vendor/Zend/library/Zend/Loader/Autoloader.php', 18 )); 19 20 // Register the autoloader 21 Autoloader::register(); 22 Zend_Loader_Autoloader::getInstance(); APPPATH/bootstrap.php ͷಡΈࠐΈํ͸༷ʑ 1.2.1 @wakuworks גࣜձࣾ 4-4. Λ࢖͏ 12೥7݄8೔೔༵೔

Slide 111

Slide 111 text

31 $val->add('id', 'Ϣʔβʔ ID') 32 ->add_rule(array( 33 new Zend_Filter_StringTrim(), 34 'filter' 35 )) 36 ->add_rule(array( 37 new Zend_Validate_Alpha(), 38 'isValid' 39 )); 1 ':labelΛਖ਼͘͠ೖྗ͍ͯͩ͘͠͞ɻ', 5 ); APPPATH/app/lang/ja/validation.php 1.2.1 @wakuworks גࣜձࣾ 4-4. Λ࢖͏ 12೥7݄8೔೔༵೔

Slide 112

Slide 112 text

31 $val->add('id', 'Ϣʔβʔ ID') 32 ->add_rule(array( 33 new Zend_Filter_StringTrim(), 34 'filter' 35 )) 36 ->add_rule(array( 37 new Zend_Validate_Alpha(), 38 'isValid' 39 )); 1 ':labelΛਖ਼͘͠ೖྗ͍ͯͩ͘͠͞ɻ', 5 ); APPPATH/app/lang/ja/validation.php 1.2.1 @wakuworks גࣜձࣾ ϑΟϧλ 4-4. Λ࢖͏ 12೥7݄8೔೔༵೔

Slide 113

Slide 113 text

31 $val->add('id', 'Ϣʔβʔ ID') 32 ->add_rule(array( 33 new Zend_Filter_StringTrim(), 34 'filter' 35 )) 36 ->add_rule(array( 37 new Zend_Validate_Alpha(), 38 'isValid' 39 )); 1 ':labelΛਖ਼͘͠ೖྗ͍ͯͩ͘͠͞ɻ', 5 ); APPPATH/app/lang/ja/validation.php 1.2.1 @wakuworks גࣜձࣾ ϑΟϧλ όϦσʔλ 4-4. Λ࢖͏ 12೥7݄8೔೔༵೔

Slide 114

Slide 114 text

5.͓·͚ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 115

Slide 115 text

Validation Ϋϥε͔Β ϑΥʔϜΛੜ੒ͯ͠ΈΔ 5. ͓·͚ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 116

Slide 116 text

ઌʹݴ͏ͱ 5. ͓·͚ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 117

Slide 117 text

શ͘໾ʹཱͪ·ͤΜɻ 1.2.1 @wakuworks גࣜձࣾ 5. ͓·͚ 12೥7݄8೔೔༵೔

Slide 118

Slide 118 text

24 $val = \Validation::forge(); 25 26 $val->add('name', '໊લ') 27 ->add_rule('trim') 28 ->add_rule('required') 29 ->add_rule('max_length', 20); 30 31 $val->add_field('email', 'ϝʔϧΞυϨε', 32 'trim|required|valid_email'); 33 34 $val->add('submit', '', array( 35 'type' => 'submit', 36 'value' => '֬ೝ', 37 )); 38 39 $form_html = $val->fieldset() 40 ->build('/form/confirm/'); 41 $this->template->set_safe('form_html', $form_html); ※ Validation Ϋϥε͕࣋ͭ Fieldset ΠϯελϯεͰੜ੒ͯ͠Δ͚ͩ 1.2.1 @wakuworks גࣜձࣾ 5. ͓·͚ 12೥7݄8೔೔༵೔

Slide 119

Slide 119 text

େਓ͘͠ Fieldset ͔Β ੜ੒ͨ͠ํ͕͍͍ͱࢥ͏ 1.2.1 @wakuworks גࣜձࣾ 5. ͓·͚ 12೥7݄8೔೔༵೔

Slide 120

Slide 120 text

6. ·ͱΊ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔

Slide 121

Slide 121 text

Validation Ұͭऔͬͯ΋࢖͍ํ͸༷ʑɻ ʮ͜Μͳํ๏͍͚Δͷʁʯͱࢼͨ͠ࣄ͕Ҋ ֎͢ΜͳΓͱ௨ͬͨΓɻ ͜͜·Ͱબ୒ࢶΛ༻ҙͯ͘͠Ε͍ͯΔ FuelPHP ΛɺվΊͯૉ੖Β͍͠ϑϨʔϜϫʔ Ϋͩͳͱײ͡·ͨ͠ɻ 1.2.1 @wakuworks גࣜձࣾ 6.·ͱΊ 12೥7݄8೔೔༵೔

Slide 122

Slide 122 text

Ҏ্ɺ ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ 1.2.1 @wakuworks גࣜձࣾ 12೥7݄8೔೔༵೔