# Slim-skeleton routing puzzle

**URL:** <https://discourse.slimframework.com/t/slim-skeleton-routing-puzzle/1757>\
**Category:** Questions\
**Created:** [August 19, 2017, 7:06pm UTC](https://discourse.slimframework.com/t/slim-skeleton-routing-puzzle/1757 "2017-08-19T19:06:41Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![perkin5](https://avatars.discourse-cdn.com/v4/letter/p/d26b3c/32.png) [@perkin5](https://discourse.slimframework.com/u/perkin5)\
**Post date:** [August 19, 2017, 7:06pm UTC](https://discourse.slimframework.com/t/slim-skeleton-routing-puzzle/1757/1 "2017-08-19T19:06:42Z")

</div>

I have been looking at various tutorial videos to understand Slim (only just discovered it) and I was liking what I saw. Having downloaded slim-skeleton however I see that it has a much more comprehensive file structure and a routing strategy that I just do not understand. I see the templates index file requires the routes file so that’s OK but the routes file has a method like:  
return $this-\>renderer-\>render($response, ‘about.php’, $args);  
There was no mention of ‘renderer’ in the videos I watched and I have searched the documentation without success. Can you point to some documentation that covers this? Using this approach, how for instance would I open up another website page?  
Sorry if impossibly dim but I have to start somewhere.

---

<div class="post-metadata">

**Author:** ![tflight](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.slimframework.com/tflight/32/1205_2.png) [@tflight](https://discourse.slimframework.com/u/tflight)\
**Post date:** [August 20, 2017, 11:41am UTC](https://discourse.slimframework.com/t/slim-skeleton-routing-puzzle/1757/2 "2017-08-20T11:41:40Z")

</div>

If you started with a Skeleton, then you started with a package where someone made some decisions about the file structure they wanted and likely added additional components necessary for their example. The `renderer` is likely using either the `php-view` or `twig-view` components, as covered by the [Templates](https://www.slimframework.com/docs/features/templates.html) section of the documentation (under Add Ons).

---

<div class="post-metadata">

**Author:** ![perkin5](https://avatars.discourse-cdn.com/v4/letter/p/d26b3c/32.png) [@perkin5](https://discourse.slimframework.com/u/perkin5)\
**Post date:** [August 20, 2017, 3:55pm UTC](https://discourse.slimframework.com/t/slim-skeleton-routing-puzzle/1757/3 "2017-08-20T15:55:14Z")

</div>

Thanks for that. Neither of the templates here appears to use the same code as my download. Maybe I should have downloaded a vanilla version but this skeleton was heavily pushed from the home page as the ‘easiest’ way to start. I don’t think so. I wonder if it is possible to uninstall a plugin package without disabling the main functionality. And first how to discover what add-ons you’ve got…

---

<div class="post-metadata">

**Author:** ![tflight](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.slimframework.com/tflight/32/1205_2.png) [@tflight](https://discourse.slimframework.com/u/tflight)\
**Post date:** [August 21, 2017, 12:53pm UTC](https://discourse.slimframework.com/t/slim-skeleton-routing-puzzle/1757/4 "2017-08-21T12:53:16Z")

</div>

It might be helpful to know what your experience is with PHP, frameworks, and composer, as well as perhaps your goals. Not necessarily all of those items but with some of that info we can better steer you in the right direction. The skeletons are often the way to best see how Slim can be put together rather than wiring it all yourself. That’s why they are shown as easier ways to get started. If you’d like to build it up yourself you are always welcome to do so, but that will take more work and background knowledge.

In your initial question, since you are within the context of `$app`, `$this->renderer` refers to the `renderer` entry from the container, found [here](https://github.com/slimphp/Slim-Skeleton/blob/master/src/dependencies.php#L7).

Your `composer.json` file will list what packages are included/installed with your project. You could certainly remove some of them, but obviously any code that depends on those packages will fail.
