# |
Jan 16th 2020, 23:13 |
challgren |
Well I can say in 4.x they are deprecated and set to be removed in 5.x |
# |
Jan 16th 2020, 23:06 |
wizardfix |
I'm trying to use framework functions as documented here: https://book.cakephp.org/3/en/core-libraries/file-folder.html |
# |
Jan 16th 2020, 23:01 |
challgren |
Ohh sorry, https://www.php.net/manual/en/function.file-put-contents.php? |
# |
Jan 16th 2020, 23:00 |
wizardfix |
@challgren I'm on 3.8...not looking for a plugin,, just want to write text to a file! :) |
# |
Jan 16th 2020, 22:57 |
challgren |
I think only https://github.com/josbeir/cakephp-filesystem supports 4.x |
# |
Jan 16th 2020, 22:57 |
challgren |
@wizardfix check https://github.com/friendsofcake/awesome-cakephp for ones with :strawberry: |
# |
Jan 16th 2020, 22:03 |
wizardfix |
*Problem creating and writing to file* This is probably something simple I'm missing. I'm just trying to create a file and write a line of text to it. ```$path = WWW_ROOT . 'files/test_results_ex.csv'; $file = new File($path, true, 0755); $file->write('#ID,Number,Country,Start time,Connect time,End time,Score,URL'); $file->close();``` |
# |
Jan 16th 2020, 21:26 |
ricksaccous |
is there a fileuploader plugin out there for cakephp4? |
# |
Jan 16th 2020, 20:02 |
ndm |
@noel JSON column types are handles by the JSON database types, which encodes/decodes the data accordingly when reading/writing from/to the database. https://github.com/cakephp/cakephp/blob/3.8.8/src/Database/Type/JsonType.php |
# |
Jan 16th 2020, 19:15 |
noel |
Actually that's not going to help me.. the value is already incorrectly stored within the entity's `_properties`. So I think the problem is at the point where the query is executed and the entity's properties are hydrated. |
# |
Jan 16th 2020, 18:54 |
noel |
Or should I create my own datatype instead? |
# |
Jan 16th 2020, 18:51 |
slackebot |
How can I affect this? I want to somehow intercept or overwrite the getter? |
# |
Jan 16th 2020, 18:51 |
noel |
So.. the problem I'm having actually seems to be with the entity's getters. The property I'm interested in was defined in the migration as a `json` data type. The value stored in the database is `{"AO":{}}` but the entity defines the property as an array (i.e. `@property array`) and the getter returns the value as `["AO" => []]` as a PHP array structure. Presumably it is performing a `json_decode` in the getter due to the data type of the field. |
# |
Jan 16th 2020, 18:41 |
jimbo2150 |
Hm, I don't see much difference with the dependencies with that package. I prefer not to try to revert back to dev for packages as 4 continues shifting over to stable packages. It is not affecting anything major, just wondering if anyone else was seeing that issue. Thanks @challgren |
# |
Jan 16th 2020, 18:41 |
noel |
Wish I'd found this comment about 2 days ago: `// JSON API as generated by NeoMerx. When things look off, start debugging here` |
# |
Jan 16th 2020, 18:28 |
challgren |
But if I switch it back to ^4.0 it does the upgrade and then downgrade |
# |
Jan 16th 2020, 18:27 |
challgren |
But I am using a dev debugkit version |
# |
Jan 16th 2020, 18:27 |
challgren |
@jimbo2150 doesn’t happen on my project today |
# |
Jan 16th 2020, 18:21 |
jimbo2150 |
Happened again, upgrading then downgrading again with Composer with default CakePHP 4 setup. Still not sure what is going on... |
# |
Jan 16th 2020, 18:20 |
noel |
I think the problem I'm having is to with the Entity. So my viewVar contains an entity. If I do a get on the property I want from the entity it is returning an incorrect value. It's confusing because as I understand it crud-json-api is supposed to get it's data from the BodyParserMiddleware... but I don't think it's doing that. I think instead it is getting it from the entity. |
# |
Jan 16th 2020, 18:19 |
challgren |
Ughh I have to learn lararel I fought tooth and nail to use CakePHP |
# |
Jan 16th 2020, 17:40 |
challgren |
We are already slaves to the machines! |
# |
Jan 16th 2020, 17:36 |
ndm |
That's how the machines will take over |
# |
Jan 16th 2020, 17:35 |
ndm |
Yeah, initially the traits were kinda cumbersome at times when digging through the code, luckily PhpStorm got better at it, so that it now also knows where a trait is being used, and basically inherits the inheritors for code completion and stuff, and so I don't really complain about it... |
# |
Jan 16th 2020, 17:28 |
admad |
We unfortunately drank a bit too much of the "composition over inheritance" coolaid when traits were new in PHP |
# |
Jan 16th 2020, 17:28 |
ndm |
I mean, the aliasing itself is pretty easy to understand, but that it can affect other use statements is really funky |
# |
Jan 16th 2020, 17:26 |
admad |
@ndm i do know theoretically about trait method aliasing. In practice it does create for "fun" code reading as you found out :) |
# |
Jan 16th 2020, 17:22 |
noel |
I'm getting this error during xdebug session – but it's not being reported anywhere else (like logs etc.) `Aura\Intl\Exception: Package 'debug_kit' with locale 'en_US' is not registered.` Any ideas what it's about? |
# |
Jan 16th 2020, 17:06 |
ndm |
You just have to love PHP :upside_down_face: |
# |
Jan 16th 2020, 17:00 |
shoe |
I just saw that same thing the other day, and yes, it was news to me. |
# |
Jan 16th 2020, 17:00 |
neon1024 |
I’ve seen it before in other Cake files, but never investigated it |
# |
Jan 16th 2020, 16:58 |
ndm |
And by minute I mean I dumbfoundedly digged through the code for 20 minutes, not knowing what the hell is going on |
# |
Jan 16th 2020, 16:56 |
ndm |
Ok, honestly, who here knew that separate `use` statements for traits seem to handled the same as using a single `use` statement and a comma separated list of traits, therefore allowing to alias methods of traits in other `use` statements? https://github.com/cakephp/migrations/blob/2.4.1/src/Command/Migrate.php#L24-L26 That really threw me off for a minute, as `execute` is a method of `CommandTrait`. |
# |
Jan 16th 2020, 16:55 |
alexmax |
I use VSCode + PHP Intelliphense now, and it works great, but when I was having the worst of the issues I think I was either using no linter or `php -l` which doesn't catch those issues. |
# |
Jan 16th 2020, 16:50 |
dereuromark |
you dont use en IDE? then this doesnt happen usually :) |
# |
Jan 16th 2020, 16:47 |
alexmax |
`Exception` vs `\Exception` is the worst. |
# |
Jan 16th 2020, 16:47 |
alexmax |
if I had a dollar for every time I've been caught out by catching a non-existant class because of namespace treachery... |
# |
Jan 16th 2020, 16:45 |
shoe |
@ndm NAMESPACES!!! ha! I apparently didn’t add the proper namespace for the ForbiddenException when I tried that earlier. You’re right that does work now. Thank you! |
# |
Jan 16th 2020, 16:38 |
ndm |
It will work, as the authorization middleware wraps all following middlewares in a `try...catch`, and catch all exceptions. The redirect handler would need to be configured accordingly to catch `\Authorization\Exception\ForbiddenException` exceptions, as by default it only handles `\Authorization\Exception\MissingIdentityException`. All non configured exceptions will be rethrown. |
# |
Jan 16th 2020, 16:34 |
shoe |
https://book.cakephp.org/authorization/2/en/request-authorization-middleware.html |
# |
Jan 16th 2020, 16:34 |
shoe |
But that won’t work when using the request authorization middleware, will it? |