Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class ValidateRules
- {
- static private $folderName = 'rules';
- /**
- * get external validation rules and instance of Validation() object
- *
- * @param string/array name of file rules or send array of validate rules
- * @param string instanceName name of instance Validatio::forge()
- *
- * @return instance of Validation::forge()
- */
- public static function getRules($name, $instanceName = null)
- {
- if($instanceName)
- {
- $instance = \Validation::forge($instanceName);
- } else {
- $instance = \Validation::forge(\Str::random());
- }
- if(is_array($name))
- {
- $storeRules = array();
- foreach($name as $filename)
- {
- $storeRules[] = include(self::getFileRules($filename));
- }
- $rules = array();
- foreach($storeRules as $arrayRule)
- {
- $rules = array_merge($rules, $arrayRule);
- }
- } else {
- $rules = include(self::getFileRules($name));
- }
- foreach($rules as $field => $item)
- {
- $instance->add_field( $field, $item['label'], self::convertToString($item['rules']) );
- }
- return $instance;
- }
- /**
- * @param string $name filename rules
- * @return string path file
- */
- private static function getFileRules($name)
- {
- $fileName = explode('_', $name);
- $file = APPPATH. DS .$fileName[0]. DS .self::$folderName. DS .$name.'.php';
- return $file;
- }
- /**
- * @param array $rules
- * @return string
- */
- private static function convertToString($rules = array())
- {
- $string = '';
- foreach($rules as $name => $rule)
- {
- if(is_array($rule))
- {
- $string .= $name.'[';
- $string .= implode(',', $rule);
- $string .= ']|';
- }
- elseif($name == $rule)
- {
- $string .= $rule . '|';
- } else {
- $string .= $name.'['.$rule.']|';
- }
- }
- $string = trim(rtrim($string, '|'));
- return $string;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement