Log message #4054242

# At Username Text
# Jul 19th 2017, 16:24 admad Okay, sorry can't offer any help. Just that i too had got such random 403's a while back. But we already had a server switch planned so never got to the bottom of it
# Jul 19th 2017, 16:23 r3zam slackebot: nope ...
# Jul 19th 2017, 16:22 admad Was apache / its settings updated recently by any chance?
# Jul 19th 2017, 16:22 r3zam slackebot: yup
# Jul 19th 2017, 16:21 admad r3zam: using apache?
# Jul 19th 2017, 16:18 r3zam any idea what that might cause this problem ?
# Jul 19th 2017, 16:18 r3zam guys there is something else , i wrote a very simple app with cake 3.x but there is something wrong , every time i refresh page i got 403 error for one of the resources or after 5 times refresh i got forbidden error for whole page ,
# Jul 19th 2017, 16:05 inoas in php
# Jul 19th 2017, 16:05 inoas I wonder if there is a magic way to preprocess params when calling functions ;)
# Jul 19th 2017, 16:04 inoas not sure if my foo will be good enough, I will contact you if I start a PR
# Jul 19th 2017, 16:04 inoas like say this needs to be a legit ip-address
# Jul 19th 2017, 16:04 inoas ah you mean that you can use the validator... hum
# Jul 19th 2017, 16:04 jeremyharris if you want some help on it at any point, hit me up :slightly_smiling_face:
# Jul 19th 2017, 16:03 inoas it could in many occasions
# Jul 19th 2017, 16:02 jeremyharris would love to see it use the existing validation class if it can
# Jul 19th 2017, 16:02 inoas (or returns all fields invalid or true)
# Jul 19th 2017, 16:02 jeremyharris a PR might help others understand what you’re getting at :slightly_smiling_face: although, don’t get discouraged if it’s not accepted. It would be a PR a bit ahead of the finished discussion
# Jul 19th 2017, 16:02 inoas basically implement Options::validate() (returns true/false) and Options::validateOrFail()
# Jul 19th 2017, 16:01 inoas jeremyharris while my coding foo is mediocre if there is enough support in the core to consider this I would be willing to create a PR
# Jul 19th 2017, 16:00 inoas but rather real parameters
# Jul 19th 2017, 16:00 inoas but I think if you want that you should not use $options
# Jul 19th 2017, 16:00 inoas the only gripe is, it does not do IDE stuff very well
# Jul 19th 2017, 15:59 jeremyharris I think i’m on the same page now
# Jul 19th 2017, 15:59 inoas however you are then "on your own" (aka as $options are right now)
# Jul 19th 2017, 15:59 inoas that should be still possible through using type array and making it optional
# Jul 19th 2017, 15:58 jeremyharris I prefer that idea to the object one. I wonder if someone will come up with a use case where they want to provide an N amount of custom keys that aren’t defined in the schema, but still validate other options
# Jul 19th 2017, 15:58 inoas basically take a look at function overloading in elixir ... pattern match against different sets of parameters
# Jul 19th 2017, 15:58 inoas but not when calling the function
# Jul 19th 2017, 15:57 inoas there is verbosity in the validator
# Jul 19th 2017, 15:57 inoas that usage should be disencouraged as much as possible
# Jul 19th 2017, 15:57 inoas ['types'] => ['array', 'string'], ['isOptional' => true]
# Jul 19th 2017, 15:57 jeremyharris hmm, so kind of how shells work atm
# Jul 19th 2017, 15:57 inoas well you would need to list all, or mark that as optional
# Jul 19th 2017, 15:56 jeremyharris so you can’t have option arrays that accept user defined options, like in customer finders
# Jul 19th 2017, 15:56 inoas and you would build the array but before it is consumed you would validateOrFail()
# Jul 19th 2017, 15:56 inoas yes obviously
# Jul 19th 2017, 15:56 inoas well the latter Elm like exception could work ;)
# Jul 19th 2017, 15:56 jeremyharris oh so the validator rejects all keys that aren’t in the schema?
# Jul 19th 2017, 15:56 inoas (did you mean category ;)
# Jul 19th 2017, 15:55 inoas 'cagetory' hash key exists but was not expected
# Jul 19th 2017, 15:55 jeremyharris how would you alert the dev that this is a problem: foo(‘argAhere’, ‘argBhere’, [‘cagetory’ => ‘foo’, ‘link’ => [‘action’ => ‘bar’], ‘filters’ => ‘onSale’]);