# |
Feb 17th 2020, 19:26 |
thomas078 |
for some reason i only receive the latter |
# |
Feb 17th 2020, 19:26 |
thomas078 |
Buyer-Id: 12345 Buyer-Id: 123456 |
# |
Feb 17th 2020, 19:26 |
thomas078 |
not sure if its nginx or php or cake. Im trying to send duplicate http headers. |
# |
Feb 17th 2020, 18:15 |
kiwi_74 |
@flashios09 ok, cool. Thanks. I'll look into that. Just wanted to see if the answer was already known. |
# |
Feb 17th 2020, 18:14 |
slackebot |
<flashios09> |
# |
Feb 17th 2020, 18:11 |
flashios09 |
@kiwi_74 try and see, the DEBUG KIT timer tab can help you |
# |
Feb 17th 2020, 18:01 |
kiwi_74 |
approach. |
# |
Feb 17th 2020, 18:01 |
kiwi_74 |
Hello everyone. Quick hypothetical question. Would there be any significant performance hit if you called `$this->loadModel(modelName)` for all the models used by a controller in the initialize() function of that controller, rather than in each individual function as needed? I'm just trying to figure out the advantages / disadvantages to each |
# |
Feb 17th 2020, 17:56 |
flashios09 |
`$routes->connect('/Roomtypes/view/:id', ['controller' => 'Roomtypes', 'action' => 'view']);` |
# |
Feb 17th 2020, 17:56 |
flashios09 |
the route inside `routes.php` |
# |
Feb 17th 2020, 17:54 |
slackebot |
$this->response = $result; } return $result; } /** * The view action * * @param \App\Model\Entity\Roomtype $roomtype The roomtype entity. * @return void */ public function view(Roomtype $roomtype) { debug($roomtype); die(); } }``` |
# |
Feb 17th 2020, 17:54 |
slackebot |
'action' => $request->getParam('action'), 'prefix' => $request->getParam('prefix') ?: '', 'plugin' => $request->getParam('plugin'), ]); } /** * @var callable $callable */ $callable = [$this, $request->getParam('action')]; $id = $request->getParam('id'); $pass = $request->getParam('pass'); if ($id) { $Table = |
# |
Feb 17th 2020, 17:54 |
slackebot |
TableRegistry::get($request->getParam('controller')); // you can replace the `get` method with a custom finder or a config option // you can merge the pass or overwrite it, this is just an example $pass[0] = $Table->get($id); } // $result = $callable(...array_values($request->getParam('pass'))); $result = $callable(...array_values($pass)); if ($result instanceof Response) { |
# |
Feb 17th 2020, 17:54 |
slackebot |
* @throws \ReflectionException */ public function invokeAction() { debug("invokeAction"); $request = $this->request; if (!$request) { throw new LogicException('No Request object configured. Cannot invoke action'); } if (!$this->isAction($request->getParam('action'))) { throw new MissingActionException([ 'controller' => $this->name . 'Controller', |
# |
Feb 17th 2020, 17:54 |
flashios09 |
```<?php namespace App\Controller; use App\Controller\AppController; use App\Model\Entity\Roomtype; use Cake\Controller\Exception\MissingActionException; use Cake\ORM\TableRegistry; use LogicException; /** * Roomtypes controller */ class RoomtypesController extends AppController { /** * Dispatches the controller action. Checks that the action * exists and isn't private. * * @return mixed The resulting response. |
# |
Feb 17th 2020, 17:54 |
flashios09 |
@chris301 @dan874 this is how you can have an entity with typehint as a passed param in your action, all you have to do is to play a little bit with the `Controller::invokeAction()` method |
# |
Feb 17th 2020, 17:12 |
neon1024 |
As a Cake controller would get the repository class instance automagically 8) |
# |
Feb 17th 2020, 17:11 |
neon1024 |
Perhaps the grey area is the separation between the repository instance and the entity |
# |
Feb 17th 2020, 17:11 |
neon1024 |
> application providing the model based on what it’s asked for |
# |
Feb 17th 2020, 17:07 |
admad |
what you want could be achieved relatively easily in Cake 4 by overriding Controller::getAction() and Controller::invokeAction() |
# |
Feb 17th 2020, 17:05 |
chris301 |
anyway, i’m clocking off for the day - thanks for your help guys - looks like what we’ve wanted to do isn’t possible |
# |
Feb 17th 2020, 17:05 |
chris301 |
to do what we have seen elsewhere, it wouldn’t be the router doing it - rather the application providing the model based on what it’s asked for. it’s interesting to see the differences between frameworks |
# |
Feb 17th 2020, 17:03 |
admad |
making the router pull out entities is muddling of concerns IMO |
# |
Feb 17th 2020, 17:01 |
chris301 |
we inherited this codebase, along with its problems, and have worked to make it a useable base - we are also behind on versions, due to other complications we’ve had along the way. it’s in the long term plan to update, but that hasn’t happened yet |
# |
Feb 17th 2020, 17:00 |
chris301 |
what we’re trying to do is separate out the concerns fully. as for replicating laravel with cake, theres things we’ve got in place to make our jobs easier but we know replicating laravel is nigh on impossible in cake |
# |
Feb 17th 2020, 16:58 |
chris301 |
so we have many of those already in place |
# |
Feb 17th 2020, 16:58 |
neon1024 |
`$this->Posts->find('newest')->find('byAuthor', ['author' => 'Dave'])->find('published');` |
# |
Feb 17th 2020, 16:58 |
admad |
stop trying to replicate laravel with cake :) just state your problem and ask how to deal with it in cake |
# |
Feb 17th 2020, 16:58 |
flashios09 |
```$this->Proposals->find('yourCustomFinderNameHere', ['id' => $proposalId]);``` |
# |
Feb 17th 2020, 16:58 |
neon1024 |
..and they’re composable too which makes them very powerful |
# |
Feb 17th 2020, 16:57 |
chris301 |
oooh - literally finders on the ORM |
# |
Feb 17th 2020, 16:57 |
neon1024 |
https://book.cakephp.org/3/en/orm/retrieving-data-and-resultsets.html#custom-finder-methods |
# |
Feb 17th 2020, 16:57 |
chris301 |
intrigued to know more… custom finder? |
# |
Feb 17th 2020, 16:56 |
flashios09 |
> just copied and pasted all over the place, so we’re just trying to centralise it create a custom finder |
# |
Feb 17th 2020, 16:56 |
admad |
@chris301 @dan874 Use custom finders |
# |
Feb 17th 2020, 16:55 |
chris301 |
i don’t think it was me lol |
# |
Feb 17th 2020, 16:54 |
chris301 |
:,) |
# |
Feb 17th 2020, 16:54 |
neon1024 |
I used to work with a guy called Chris Miller |
# |
Feb 17th 2020, 16:54 |
chris301 |
to give some idea (i work with @dan874) i’m looking at a line now that is using a 6 deep nested association |
# |
Feb 17th 2020, 16:53 |
dan874 |
just copied and pasted all over the place, so we're just trying to centralise it |
# |
Feb 17th 2020, 16:53 |
dan874 |
yeah so this codebase we've inherited has a lot of them with lots of associations |