macder /
wfv-validation
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
| 1 | <?php |
||
| 2 | defined( 'ABSPATH' ) || die(); |
||
| 3 | /* |
||
| 4 | Plugin Name: WFV - Form Validation |
||
| 5 | Plugin URI: https://macder.github.io/wfv/ |
||
| 6 | Description: A simple fluid and concise API to manage user input, validation, feedback, and safe output. |
||
| 7 | Version: 0.11.0 |
||
| 8 | Author: Maciej Derulski |
||
| 9 | Author URI: https://github.com/macder |
||
| 10 | License: BSD 3-Clause |
||
| 11 | License URI: https://github.com/macder/wp-form-validation/blob/master/LICENSE |
||
| 12 | */ |
||
| 13 | |||
| 14 | define( 'WFV_VALIDATE_VERSION', '0.11.0' ); |
||
| 15 | define( 'WFV_VALIDATE__MINIMUM_WP_VERSION', '3.7' ); |
||
| 16 | define( 'WFV_VALIDATE__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); |
||
| 17 | define( 'WFV_VALIDATE__ACTION_POST', 'validate_form' ); |
||
| 18 | |||
| 19 | require_once WFV_VALIDATE__PLUGIN_DIR . '/vendor/autoload.php'; |
||
| 20 | |||
| 21 | use WFV\FormComposite; |
||
| 22 | use WFV\Agent\InspectionAgent; |
||
| 23 | use WFV\Artisan\Director; |
||
| 24 | use WFV\Artisan\FormArtisan; |
||
| 25 | use WFV\Factory\ValidatorFactory; |
||
| 26 | |||
| 27 | /** |
||
| 28 | * |
||
| 29 | * |
||
| 30 | * @since 0.10.0 |
||
| 31 | * |
||
| 32 | * @param string $action |
||
| 33 | * @param array $form Form arguments |
||
| 34 | * @param bool $trim Trim whitespace from beginning and end of string |
||
| 35 | */ |
||
| 36 | function wfv_create( $action, array &$form, $trim = true ) { |
||
|
0 ignored issues
–
show
|
|||
| 37 | $inspect = new InspectionAgent( $action ); |
||
| 38 | $input = ( true === $inspect->safe_submit() ) ? $_POST : array(); |
||
| 39 | |||
| 40 | $builder = new FormArtisan( $form ); |
||
| 41 | $form = ( new Director( $action ) ) |
||
| 42 | ->with( 'input', [ $input, $trim ] ) |
||
| 43 | ->with( 'rules' ) |
||
| 44 | ->with( 'errors' ) |
||
| 45 | ->with( 'validator' ) |
||
| 46 | ->compose( $builder ); |
||
| 47 | |||
| 48 | if( $input ) { |
||
| 49 | wfv_validate( $form ); |
||
| 50 | } |
||
| 51 | } |
||
| 52 | |||
| 53 | /** |
||
| 54 | * |
||
| 55 | * |
||
| 56 | * @since 0.11.0 |
||
| 57 | * |
||
| 58 | * @param FormComposite $form |
||
| 59 | * @return bool |
||
| 60 | */ |
||
| 61 | function wfv_validate( FormComposite $form ) { |
||
| 62 | $factory = ( new ValidatorFactory() ) |
||
| 63 | ->add( $form->rules()->unique() ); |
||
| 64 | return $form->validate( $factory )->is_valid(); |
||
| 65 | } |
||
| 66 |
Instead of super-globals, we recommend to explicitly inject the dependencies of your class. This makes your code less dependent on global state and it becomes generally more testable: