Skip to content
This repository has been archived by the owner on Mar 21, 2023. It is now read-only.

Commit

Permalink
Laravel 9
Browse files Browse the repository at this point in the history
  • Loading branch information
KennedyTedesco committed May 27, 2022
1 parent 67d5e9f commit 55c6a3d
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 54 deletions.
1 change: 1 addition & 0 deletions .php-cs-fixer.cache
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"php":"8.1.6","version":"3.8.0:v3.8.0#cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3","indent":" ","lineEnding":"\n","rules":{"array_syntax":true,"backtick_to_shell_exec":true,"binary_operator_spaces":true,"blank_line_before_statement":{"statements":["return"]},"braces":{"allow_single_line_anonymous_class_with_empty_body":true,"allow_single_line_closure":true},"cast_spaces":true,"class_attributes_separation":{"elements":{"method":"one"}},"class_definition":{"single_line":true},"class_reference_name_casing":true,"clean_namespace":true,"concat_space":true,"echo_tag_syntax":true,"empty_loop_body":{"style":"braces"},"empty_loop_condition":true,"fully_qualified_strict_types":true,"function_typehint_space":true,"general_phpdoc_tag_rename":{"replacements":{"inheritDocs":"inheritDoc"}},"include":true,"increment_style":true,"integer_literal_case":true,"lambda_not_used_import":true,"linebreak_after_opening_tag":true,"magic_constant_casing":true,"magic_method_casing":true,"method_argument_space":{"on_multiline":"ignore"},"native_function_casing":true,"native_function_type_declaration_casing":true,"no_alias_language_construct_call":true,"no_alternative_syntax":true,"no_binary_string":true,"no_blank_lines_after_phpdoc":true,"no_empty_comment":true,"no_empty_phpdoc":true,"no_empty_statement":true,"no_extra_blank_lines":{"tokens":["case","continue","curly_brace_block","default","extra","parenthesis_brace_block","square_brace_block","switch","throw","use"]},"no_leading_namespace_whitespace":true,"no_mixed_echo_print":true,"no_multiline_whitespace_around_double_arrow":true,"no_short_bool_cast":true,"no_singleline_whitespace_before_semicolons":true,"no_spaces_around_offset":true,"no_superfluous_phpdoc_tags":{"allow_mixed":true,"allow_unused_params":true},"no_trailing_comma_in_list_call":true,"no_trailing_comma_in_singleline_array":true,"no_trailing_comma_in_singleline_function_call":true,"no_unneeded_control_parentheses":{"statements":["break","clone","continue","echo_print","return","switch_case","yield","yield_from"]},"no_unneeded_curly_braces":{"namespaces":true},"no_unneeded_import_alias":true,"no_unset_cast":true,"no_unused_imports":true,"no_whitespace_before_comma_in_array":true,"normalize_index_brace":true,"object_operator_without_whitespace":true,"ordered_imports":true,"php_unit_fqcn_annotation":true,"php_unit_method_casing":true,"phpdoc_align":true,"phpdoc_annotation_without_dot":true,"phpdoc_indent":true,"phpdoc_inline_tag_normalizer":true,"phpdoc_no_access":true,"phpdoc_no_alias_tag":true,"phpdoc_no_package":true,"phpdoc_no_useless_inheritdoc":true,"phpdoc_return_self_reference":true,"phpdoc_scalar":true,"phpdoc_separation":true,"phpdoc_single_line_var_spacing":true,"phpdoc_summary":true,"phpdoc_tag_type":{"tags":{"inheritDoc":"inline"}},"phpdoc_to_comment":true,"phpdoc_trim":true,"phpdoc_trim_consecutive_blank_line_separation":true,"phpdoc_types":true,"phpdoc_types_order":{"null_adjustment":"always_last","sort_algorithm":"none"},"phpdoc_var_without_name":true,"semicolon_after_instruction":true,"single_class_element_per_statement":true,"single_line_comment_spacing":true,"single_line_comment_style":{"comment_types":["hash"]},"single_line_throw":true,"single_quote":true,"single_space_after_construct":true,"space_after_semicolon":{"remove_in_empty_for_expressions":true},"standardize_increment":true,"standardize_not_equals":true,"switch_continue_to_break":true,"trailing_comma_in_multiline":{"elements":["arrays","arguments","parameters"]},"trim_array_spaces":true,"types_spaces":true,"unary_operator_spaces":true,"whitespace_after_comma_in_array":true,"yoda_style":true,"blank_line_after_opening_tag":true,"compact_nullable_typehint":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"return_type_declaration":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"no_break_comment":true,"no_closing_tag":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_import_per_statement":true,"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true,"array_push":true,"combine_nested_dirname":true,"dir_constant":true,"ereg_to_preg":true,"error_suppression":true,"fopen_flag_order":true,"fopen_flags":{"b_mode":false},"function_to_constant":true,"implode_call":true,"is_null":true,"logical_operators":true,"modernize_types_casting":true,"native_constant_invocation":true,"native_function_invocation":{"include":["@compiler_optimized"],"scope":"namespaced","strict":true},"no_alias_functions":true,"no_homoglyph_names":true,"no_php4_constructor":true,"no_unneeded_final_method":true,"no_useless_sprintf":true,"non_printable_character":true,"ordered_traits":true,"php_unit_construct":true,"php_unit_mock_short_will_return":true,"php_unit_set_up_tear_down_visibility":true,"php_unit_test_annotation":true,"psr_autoloading":true,"self_accessor":true,"set_type_to_cast":true,"string_length_to_empty":true,"string_line_ending":true,"ternary_to_elvis_operator":true,"pow_to_exponentiation":true,"no_trailing_whitespace_in_string":true},"hashes":{"src\/Validation\/Validator.php":635914397,"src\/Validation\/RuleFactory.php":1860379477,"src\/Validation\/ValidationServiceProvider.php":3167090124}}
16 changes: 16 additions & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

$finder = PhpCsFixer\Finder::create()
->in('src');

return (new PhpCsFixer\Config())
->setRules([
'@Symfony' => true,
'@Symfony:risky' => true,
'protected_to_private' => false,
'trailing_comma_in_multiline' => [
'elements' => ['arrays', 'arguments', 'parameters'],
],
])
->setRiskyAllowed(true)
->setFinder($finder);
28 changes: 0 additions & 28 deletions .php_cs

This file was deleted.

5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ The power of [Respect Validation](https://github.com/Respect/Validation) on Lara

Laravel | kennedytedesco/validation
:---------|:----------
**8.x** | `composer require kennedytedesco/validation:^8.0`
**9.x** | `composer require kennedytedesco/validation:^9.0`
8.x | `composer require kennedytedesco/validation:^8.0`
7.x | `composer require kennedytedesco/validation:^7.0`
6.x | `composer require kennedytedesco/validation:^6.0`
5.8.x | `composer require kennedytedesco/validation:^5.0`
Expand All @@ -23,7 +24,7 @@ The power of [Respect Validation](https://github.com/Respect/Validation) on Lara
## Installation

```php
composer require kennedytedesco/validation:^8.0
composer require kennedytedesco/validation:^9.0
```

## Supported rules (with examples)
Expand Down
10 changes: 5 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
}
],
"require": {
"illuminate/support": "^8.0",
"respect/validation": "^1.1"
"illuminate/support": "^9.0",
"respect/validation": "^1.0"
},
"require-dev": {
"laravel/framework": "^8.0",
"orchestra/testbench": "^6.0",
"laravel/framework": "^9.0",
"orchestra/testbench": "^7.5",
"phpunit/phpunit": "^8.5|^9.0",
"friendsofphp/php-cs-fixer": "^2.15"
"friendsofphp/php-cs-fixer": "^v3.8.0"
},
"autoload": {
"psr-4": {
Expand Down
40 changes: 24 additions & 16 deletions src/Validation/RuleFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,36 @@
namespace KennedyTedesco\Validation;

use ReflectionClass;
use ReflectionException;
use Respect\Validation\Validatable;

final class RuleFactory
{
private static $alias = [
'FileExists' => 'Exists',
'Arr' => 'ArrayVal',
'Bool' => 'BoolType',
'False' => 'FalseVal',
'Float' => 'FloatVal',
'Int' => 'IntVal',
'NullValue' => 'NullType',
'Object' => 'ObjectType',
'String' => 'StringType',
'True' => 'TrueVal',
];

public static function make(string $rule, array $parameters = [])
/**
* @throws ReflectionException
*/
public static function make(string $rule, array $parameters = []): Validatable
{
$alias = [
'FileExists' => 'Exists',
'Arr' => 'ArrayVal',
'Bool' => 'BoolType',
'False' => 'FalseVal',
'Float' => 'FloatVal',
'Int' => 'IntVal',
'NullValue' => 'NullType',
'Object' => 'ObjectType',
'String' => 'StringType',
'True' => 'TrueVal',
];

$validator = new ReflectionClass(
'Respect\\Validation\\Rules\\'.(self::$alias[$rule] ?? $rule)
'Respect\\Validation\\Rules\\'.($alias[$rule] ?? $rule),
);

return $validator->newInstanceArgs($parameters);
/** @var Validatable $instance */
$instance = $validator->newInstanceArgs($parameters);

return $instance;
}
}
7 changes: 4 additions & 3 deletions src/Validation/Validator.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,19 @@

namespace KennedyTedesco\Validation;

use Exception;
use Illuminate\Validation\Validator as BaseValidator;

final class Validator extends BaseValidator
{
public function __call($method, $parameters)
{
try {
$rule = \mb_substr($method, 8);
[$value, $args] = [$parameters[1], $parameters[2],];
$rule = mb_substr($method, 8);
[$value, $args] = [$parameters[1], $parameters[2]];

return RuleFactory::make($rule, $args)->validate($value);
} catch (\Exception $e) {
} catch (Exception $e) {
return parent::__call($method, $parameters);
}
}
Expand Down

0 comments on commit 55c6a3d

Please sign in to comment.