Log message #4199263

# At Username Text
# Aug 21st 2019, 15:14 ricksaccous @btx you can test plugins within the main app, if it's in your plugins folder, if it's in vendor then yeah you would do it separately
# Aug 21st 2019, 15:14 daniel.upshaw Ahh
# Aug 21st 2019, 15:12 admad @daniel.upshaw yeah that feature is a PITA
# Aug 21st 2019, 15:11 btx the book just directs you to regular App tests which assume cake is already installed
# Aug 21st 2019, 15:10 btx n00b question, but how should I be properly testing plugins? create a new Cake app, drop the plugin in, and then do the tests?
# Aug 21st 2019, 15:09 daniel.upshaw By disabling the Routing cache
# Aug 21st 2019, 15:09 daniel.upshaw Interestingly, if I change `->add(new RoutingMiddleware($this, '_cake_routes_'));` to `->add(new RoutingMiddleware($this, null));` it works
# Aug 21st 2019, 15:08 alexdd55976 just put the files in the right folder. more packagemanager > chances to mess stuff up
# Aug 21st 2019, 15:07 daniel.upshaw ``` * Cache: Routes are cached to improve performance, check the RoutingMiddleware * constructor in your `src/Application.php` file to change this behavior.```
# Aug 21st 2019, 15:07 alexdd55976 you do not want to do that.
# Aug 21st 2019, 15:05 daniel.upshaw And `bower` is a JS dependency
# Aug 21st 2019, 15:05 admad Don't use composer for fronted libs
# Aug 21st 2019, 15:05 daniel.upshaw You will need to `npm install` your JavaScript dependencies
# Aug 21st 2019, 15:05 daniel.upshaw Does that make sense?
# Aug 21st 2019, 15:04 daniel.upshaw NPM is for JavaScript/CSS etc, Composer is for PHP
# Aug 21st 2019, 15:04 slackebot install of `npm` and thus no `bower`. Sorry for all the questions all at once, I figured I should put everything together.
# Aug 21st 2019, 15:04 slackebot Cake directory structure. A lot of this has me thinking I should either be using `npm` exclusively for frontend management or return to `bower`. In my original setup, I loaded frontend dependencies using `bower`, got the `dist` files in the correct `webroot` subfolders with custom paths in the `bower.json` file and then committed those frontend dependencies to the repo - effectively freezing them (this was mostly because our server doesn’t allow the
# Aug 21st 2019, 15:04 slackebot using Composer to bring the frontend libraries into the project, do I still need to use `npm install` to get the `dist` files into the right directories? If I still need to use `npm`, what is the benefit of using Composer? Does using `npn install` actually bring them into the Cake projects `webroot` directory? It seems this functionality is dictated by some additional information in the libraries `package.json` file, which wouldn’t be specific to a
# Aug 21st 2019, 15:04 mdotobie I know this isn’t a CakePHP-specific question but since it is my framework of choice, I figured I’d ask this here. From everything I’ve been doing, it’s possible to bring frontend libraries into my Cake project using composer. I seemed to be under the impression that it was doing its internal magic to link those frontend libraries into my `webroot` folder - but a recent bug seems to indicant that this isn’t the case. My question is
# Aug 21st 2019, 15:04 daniel.upshaw Fair :slightly_smiling_face: Thanks for the tip
# Aug 21st 2019, 15:04 admad Unnecessary double caching could actually be detrimental, cache reads aren't exactly free either :slightly_smiling_face:
# Aug 21st 2019, 15:03 daniel.upshaw Seems indicative of a bug, yes?
# Aug 21st 2019, 15:03 daniel.upshaw So strange that it only happens on the first page loa
# Aug 21st 2019, 15:01 daniel.upshaw I just wanted it to be speedy on all fronts
# Aug 21st 2019, 15:01 daniel.upshaw Right, I tried removing that
# Aug 21st 2019, 15:01 admad Why cache the query when you are already caching imploded results
# Aug 21st 2019, 15:01 daniel.upshaw If I hard code the string, it works fine
# Aug 21st 2019, 15:00 daniel.upshaw I'm not sure if it would make a difference, but it's in my `routes.php`, so aside from potential best practices I don't see how that could make a technical difference?
# Aug 21st 2019, 14:59 daniel.upshaw So strange
# Aug 21st 2019, 14:58 daniel.upshaw Much cleaner without the `new Collection` though!
# Aug 21st 2019, 14:58 slackebot ); });```
# Aug 21st 2019, 14:58 daniel.upshaw Hrm, oddly this still errs: ```$tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return (string)implode( '|', TableRegistry::getTableLocator() ->get('Tags') ->find('all') ->select(['alias']) ->where(['route' => 1]) ->cache('tagRoutes') ->all() ->extract('alias')->toArray()
# Aug 21st 2019, 14:57 admad so `->cache()->all()->extract()->toArray()`
# Aug 21st 2019, 14:56 daniel.upshaw That's really cool, I did not know that
# Aug 21st 2019, 14:56 daniel.upshaw Oh awesome!!!
# Aug 21st 2019, 14:56 admad btw resutlsets are also collections so creating a new collection is unnecessary
# Aug 21st 2019, 14:56 slackebot ->where(['route' => 1]) ->toArray() ))->extract('alias')->toArray() ); });```
# Aug 21st 2019, 14:56 slackebot ->cache('tagRoutes') ->toArray() ))->extract('alias')->toArray() ); });``` ``` $tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return (string)implode( '|', (new Collection( TableRegistry::getTableLocator() ->get('Tags') ->find('all') ->select(['alias'])
# Aug 21st 2019, 14:56 daniel.upshaw It's a great call.... though still error with both of these: ``` $tagRoutesPiped = Cache::remember('tagRoutesPiped', function () { return (string)implode( '|', (new Collection( TableRegistry::getTableLocator() ->get('Tags') ->find('all') ->select(['alias']) ->where(['route' => 1])
# Aug 21st 2019, 14:55 admad that will cause the query to be actually run and not give you the pdo serialization error
# Aug 21st 2019, 14:54 admad @daniel.upshaw add a `->toArray()` after `->cache()`