Log message #4268019

# At Username Text
# Jul 20th 2021, 20:40 jadelbe418 The middlware interface seems to be used on the 4.x docs and not 3.x
# Jul 20th 2021, 20:40 kevin.pfeifer ah ok, cakephp 3 didn’t have that interface yet
# Jul 20th 2021, 20:40 kevin.pfeifer oh ok
# Jul 20th 2021, 20:39 jadelbe418 @kevin.pfeifer I am sorry, I should have mentioned the version number of cake I am working with. The application I am on is on 3
# Jul 20th 2021, 20:37 jadelbe418 I will play with that and see how it works.
# Jul 20th 2021, 20:37 jadelbe418 Great, thanks!
# Jul 20th 2021, 20:36 kevin.pfeifer see e.g. https://github.com/cakephp/cakephp/blob/master/src/Http/Middleware/CsrfProtectionMiddleware.php each middleware should at least implement the `MiddlewareInterface` and therefore the `process($request, $handler)` funciton
# Jul 20th 2021, 20:35 jadelbe418 I assume that I am not putting it in the middle ware que in the right spot.
# Jul 20th 2021, 20:34 slackebot2 route caching // pass null as cacheConfig, example: `new RoutingMiddleware($this)` // you might want to disable this cache in case your routing is extremely simple ->add(new RoutingMiddleware($this, '_cake_routes_')); return $middlewareQueue; } }```
# Jul 20th 2021, 20:34 slackebot2 // and make an error page/response ->add(ErrorHandlerMiddleware::class) // Handle plugin/theme assets like CakePHP normally does. ->add(new AssetMiddleware([ 'cacheTime' => Configure::read('Asset.cacheTime') ])) ->add(new CustomFieldsMiddleware()) // Add routing middleware. // Routes collection cache enabled by default, to disable
# Jul 20th 2021, 20:34 jadelbe418 ```class Application extends BaseApplication { /** * Setup the middleware queue your application will use. * * @param MiddlewareQueue $middlewareQueue The middleware queue to setup. * @return MiddlewareQueue The updated middleware queue. */ public function middleware($middlewareQueue): MiddlewareQueue { $middlewareQueue // Catch any exceptions in the lower layers,
# Jul 20th 2021, 20:33 slackebot2 ResponseInterface A response */ public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next): ResponseInterface { print_r($response); return $next($request, $response); } }```
# Jul 20th 2021, 20:33 jadelbe418 ```<?php namespace App\Middleware; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; /** * CustomFields middleware */ class CustomFieldsMiddleware { /** * Invoke method. * * @param ServerRequestInterface $request The request. * @param ResponseInterface $response The response. * @param callable $next Callback to invoke the next middleware. * @return
# Jul 20th 2021, 20:33 jadelbe418 @kevin.pfeifer Cool, thanks! So I was looking at Middleware. It seems that I do am not able to get a body in the response when I attach it to the base application like this:
# Jul 20th 2021, 19:58 kevin.pfeifer You can do both “pre-processing” (a request) and “post-processing” (a response) with a middleware See https://book.cakephp.org/4/en/intro.html#cakephp-request-cycle
# Jul 20th 2021, 19:28 slackebot2 custom fields in the api. I am still getting familiar with the cake event system and middleware. would pre-processing a request body be something I use middleware for? A before render event on the output side?
# Jul 20th 2021, 19:28 jadelbe418 I am working on a custom fields integration for a CakePHP Rest/ Crud based API. It has a slightly sophisticated MySQL schema architecture to allow users to create their own fields on certain tables in the system. I need to be able to filter posted json data and reformat it for the cake orm on a request so it properly fits into the cake schema and reformat it on the way out so the custom fields display consistently with non
# Jul 20th 2021, 15:53 kevin.pfeifer so you don't change your datasoure in your tests via the $connection variable? https://book.cakephp.org/3/en/development/testing.html#creating-fixtures
# Jul 20th 2021, 15:30 martin when I add `test_pipedrive` to the WebServices array and set Classname and Service it works fine. but I have multiple webservices. No problems with them, only with the newest one
# Jul 20th 2021, 15:29 kevin.pfeifer well to answer your question
# Jul 20th 2021, 15:29 kevin.pfeifer you are right :thinking_face:
# Jul 20th 2021, 15:28 martin not sure, default version by cakephp 3.9 I think?
# Jul 20th 2021, 15:27 kevin.pfeifer is it just me or is phpunit 6.5 pretty old? ,:)
# Jul 20th 2021, 15:24 martin would be nice if --debug did give me some debug information
# Jul 20th 2021, 15:17 martin ```vendor/bin/phpunit --debug PHPUnit 6.5.14 by Sebastian Bergmann and contributors. Exception: The datasource configuration "test_pipedrive" was not found. in [/var/www/vendor/cakephp/cakephp/src/Datasource/ConnectionManager.php, line 195]``` How can I fix this issue? pipedrive is a webservice not a database. so can’t really add a test_pipedrive resource? Also have no tests that require that
# Jul 20th 2021, 13:05 sebastiansperandio093 thanks kevin!
# Jul 20th 2021, 12:22 paolo.bragagni yes thank you!!
# Jul 20th 2021, 12:14 ndm Good... for reference, here's an overview of the field formats for the different association types: https://book.cakephp.org/4/en/views/helpers/form.html#associated-form-inputs
# Jul 20th 2021, 12:11 paolo.bragagni :)
# Jul 20th 2021, 12:11 paolo.bragagni it works
# Jul 20th 2021, 12:11 ndm You just need to change the field name.
# Jul 20th 2021, 12:10 paolo.bragagni hum
# Jul 20th 2021, 12:10 ndm what... no! That array format was just to illustrate what the data will look like in the request.
# Jul 20th 2021, 12:08 paolo.bragagni so in this way? $this->Form->hidden('books',['value' => ['categories' => [['id' => 'value']]]])
# Jul 20th 2021, 12:05 paolo.bragagni I check it all
# Jul 20th 2021, 12:04 paolo.bragagni yes
# Jul 20th 2021, 12:04 slackebot2 more categories.
# Jul 20th 2021, 12:04 ndm So it's actually `hasMany`, not `belongsToMany`? And you create a new books record, meaning there is no existing associated data that would need to be modified, and only this one hidden category should be added? Then the field name format would be `categories.0.id` (which translates to `['categories' => [['id' => 'value']]`). But you might get into trouble if there possibly also is a visible control where users can choose one or
# Jul 20th 2021, 11:59 paolo.bragagni (in my old cake2 project echo "\t\t\t echo \$this->Form->hidden('{$assocName}', array('hiddenField' => true, 'value'=> \$f_id));\n"; worked...)
# Jul 20th 2021, 11:58 paolo.bragagni everything is working but the add, because when I add a book from that view it has to select category=2 (in hidden field)
# Jul 20th 2021, 11:57 paolo.bragagni I've done a bake template that build that in the 'view' view