![Page 1: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/1.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 1/135
Keeping it smallGetting to know the Slim micro framework
@JeremyKendall
![Page 2: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/2.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 2/135
Jeremy
Kendall
![Page 3: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/3.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 3/135
Jeremy
Kendall
I love to code
![Page 4: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/4.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 4/135
Jeremy
Kendall
I love to code
I’m terribly forgetful
![Page 5: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/5.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 5/135
Jeremy
Kendall
I love to code
I’m terribly forgetful
I take pictures
![Page 6: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/6.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 6/135
Jeremy
Kendall
I love to code
I’m terribly forgetful
I take pictures
I work at OpenSky
![Page 7: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/7.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 7/135
Micro framework?
![Page 8: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/8.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 8/135
Micro framework?
Concise codebase
![Page 9: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/9.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 9/135
Micro framework?
Concise codebase
Clear codebase
![Page 10: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/10.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 10/135
Micro framework?
Concise codebase
Clear codebase
Addresses a small set of use cases
![Page 11: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/11.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 11/135
Micro framework?
Concise codebase
Clear codebase
Addresses a small set of use cases
Addresses those use cases well
![Page 12: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/12.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 12/135
What is Slim?
![Page 13: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/13.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 13/135
What is Slim?
Inspired by Sinatra
![Page 14: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/14.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 14/135
What is Slim?
Inspired by Sinatra
Favors cleanliness over terseness
![Page 15: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/15.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 15/135
What is Slim?
Inspired by Sinatra
Favors cleanliness over terseness
Favors common cases over edge cases
![Page 16: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/16.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 16/135
Installing Slim
![Page 17: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/17.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 17/135
RTFM
![Page 18: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/18.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 18/135
RTFM ;-)
![Page 19: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/19.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 19/135
Don’t forget .htaccess!
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
http://docs.slimframework.com/pages/routing-url-rewriting/
![Page 20: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/20.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 20/135
Hello world
<?php
require '../vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
![Page 21: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/21.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 21/135
Hello world
<?php
require '../vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
![Page 22: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/22.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 22/135
Hello world
<?php
require '../vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
![Page 23: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/23.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 23/135
Hello world
<?php
require '../vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
![Page 24: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/24.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 24/135
Hello world
<?php
require '../vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
![Page 25: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/25.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 25/135
Let’s look at a
Slim application
![Page 26: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/26.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 26/135
Flaming Archer
![Page 27: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/27.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 27/135
Flaming Archer
wat
![Page 28: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/28.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 28/135
“Great repository names are short and memorable.
Need inspiration? How about flaming-archer.”
![Page 29: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/29.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 29/135
Flaming Archer
![Page 30: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/30.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 30/135
Flaming Archer
Photo 365 project
![Page 31: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/31.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 31/135
Flaming Archer
Photo 365 project
Built in 4 days (Saturday through Tuesday)
![Page 32: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/32.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 32/135
Flaming Archer
Photo 365 projectBuilt in 4 days (Saturday through Tuesday)
Basic application — a few bells, no whistles
![Page 33: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/33.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 33/135
Flaming Archer
Photo 365 projectBuilt in 4 days (Saturday through Tuesday)
Basic application — a few bells, no whistles
Routing
![Page 34: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/34.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 34/135
Flaming Archer
Photo 365 projectBuilt in 4 days (Saturday through Tuesday)
Basic application — a few bells, no whistles
Routing
Twig views
![Page 35: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/35.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 35/135
Flaming Archer
Photo 365 projectBuilt in 4 days (Saturday through Tuesday)
Basic application — a few bells, no whistles
Routing
Twig views
Middleware
![Page 36: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/36.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 36/135
4 views
![Page 37: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/37.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 37/135
![Page 38: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/38.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 38/135
![Page 39: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/39.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 39/135
![Page 40: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/40.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 40/135
![Page 41: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/41.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 41/135
phploc --exclude vendor,tests,templates .
phploc 1.6.4 by Sebastian Bergmann.
Directories: 7Files: 13
Lines of Code (LOC): 876 Cyclomatic Complexity / Lines of Code: 0.04Comment Lines of Code (CLOC): 272Non-Comment Lines of Code (NCLOC): 604
![Page 42: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/42.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 42/135
Configuration
return array(
'slim' => array(
![Page 43: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/43.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 43/135
y(
'templates.path' => __DIR__ . '/templates',
'log.level' => 4,
'log.enabled' => true,
'log.writer' => new Slim\Extras\Log\DateTimeFileWriter(
array( 'path' => __DIR__ . '/logs',
'name_format' => 'y-m-d'
)
)
),
'twig' => array(
// . . . ),
'cookies' => array(
// . . .
),
'flickr.api.key' => 'FLICKR API KEY',
'pdo' => array(
// . . . )
);
return array(
'slim' => array(
![Page 44: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/44.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 44/135
y(
'templates.path' => __DIR__ . '/templates',
'log.level' => 4,
'log.enabled' => true,
'log.writer' => new Slim\Extras\Log\DateTimeFileWriter(
array( 'path' => __DIR__ . '/logs',
'name_format' => 'y-m-d'
)
)
),
'twig' => array(
// . . . ),
'cookies' => array(
// . . .
),
'flickr.api.key' => 'FLICKR API KEY',
'pdo' => array(
// . . . )
);
S
return array(
'slim' => array(
![Page 45: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/45.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 45/135
'templates.path' => __DIR__ . '/templates',
'log.level' => 4,
'log.enabled' => true,
'log.writer' => new Slim\Extras\Log\DateTimeFileWriter(
array( 'path' => __DIR__ . '/logs',
'name_format' => 'y-m-d'
)
)
),
'twig' => array(
// . . . ),
'cookies' => array(
// . . .
),
'flickr.api.key' => 'FLICKR API KEY',
'pdo' => array(
// . . . )
);
S
Views
return array(
'slim' => array(
![Page 46: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/46.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 46/135
'templates.path' => __DIR__ . '/templates',
'log.level' => 4,
'log.enabled' => true,
'log.writer' => new Slim\Extras\Log\DateTimeFileWriter(
array( 'path' => __DIR__ . '/logs',
'name_format' => 'y-m-d'
)
)
),
'twig' => array(
// . . . ),
'cookies' => array(
// . . .
),
'flickr.api.key' => 'FLICKR API KEY',
'pdo' => array(
// . . . )
);
S
Views
Cookies
return array(
'slim' => array(
![Page 47: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/47.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 47/135
'templates.path' => __DIR__ . '/templates',
'log.level' => 4,
'log.enabled' => true,
'log.writer' => new Slim\Extras\Log\DateTimeFileWriter(
array( 'path' => __DIR__ . '/logs',
'name_format' => 'y-m-d'
)
)
),
'twig' => array(
// . . . ),
'cookies' => array(
// . . .
),
'flickr.api.key' => 'FLICKR API KEY',
'pdo' => array(
// . . . )
);
S
Views
Cookies
My stuff
![Page 48: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/48.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 48/135
$config = require_once __DIR__ . '/../config.php
// Prepare app
$app = new Slim\Slim($config['slim']);
![Page 49: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/49.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 49/135
$config = require_once __DIR__ . '/../config.php
// Prepare app
$app = new Slim\Slim($config['slim']);
Config arraygoes here
![Page 50: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/50.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 50/135
Routing
R i
![Page 51: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/51.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 51/135
Routing
$app->get('/', function () use ($app, $service) { $images = $service->findAll();
$app->render('index.html', array('images' => $images));
});
R i
![Page 52: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/52.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 52/135
Routing
$app->get('/', function () use ($app, $service) { $images = $service->findAll();
$app->render('index.html', array('images' => $images));
});
HTTP Method
R i
![Page 53: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/53.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 53/135
Routing
$app->get('/', function () use ($app, $service) { $images = $service->findAll();
$app->render('index.html', array('images' => $images));
});
HTTP MethodResource URI
R ti
![Page 54: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/54.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 54/135
Routing
$app->get('/', function () use ($app, $service) { $images = $service->findAll();
$app->render('index.html', array('images' => $images));
});
HTTP MethodResource URI
Anonymous Function
R ti
![Page 55: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/55.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 55/135
Routing
$app->get('/', function () use ($app, $service) { $images = $service->findAll();
$app->render('index.html', array('images' => $images));
});
R ti
![Page 56: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/56.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 56/135
Routing
$app->get('/', function () use ($app, $service) { $images = $service->findAll();
$app->render('index.html', array('images' => $images));
});
Grabs all t
R tin
![Page 57: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/57.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 57/135
Routing
$app->get('/', function () use ($app, $service) { $images = $service->findAll();
$app->render('index.html', array('images' => $images));
});
Grabs all t
Passes array of image data to index.html
GET
![Page 58: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/58.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 58/135
GET
$app->get('/:day', function($day) use ($app, $service) {
$image = $service->find($day);
if (!$image) {
$app->notFound();
}
$app->render('images.html', $image);
}
)->conditions(array('day' => '([1-9]\d?|[12]\d\d|3[0-5]\d|36[0-6])
GET
![Page 59: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/59.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 59/135
GET
$app->get('/:day', function($day) use ($app, $service) {
$image = $service->find($day);
if (!$image) {
$app->notFound();
}
$app->render('images.html', $image);
}
)->conditions(array('day' => '([1-9]\d?|[12]\d\d|3[0-5]\d|36[0-6])
URL parameter
GET
![Page 60: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/60.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 60/135
GET
$app->get('/:day', function($day) use ($app, $service) {
$image = $service->find($day);
if (!$image) {
$app->notFound();
}
$app->render('images.html', $image);
}
)->conditions(array('day' => '([1-9]\d?|[12]\d\d|3[0-5]\d|36[0-6])
URL parameter... gets passed as an
argument
GET
![Page 61: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/61.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 61/135
GET
$app->get('/:day', function($day) use ($app, $service) {
$image = $service->find($day);
if (!$image) {
$app->notFound();
}
$app->render('images.html', $image);
}
)->conditions(array('day' => '([1-9]\d?|[12]\d\d|3[0-5]\d|36[0-6])
URL parameter... gets passed as an
argument
Condition
GET
![Page 62: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/62.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 62/135
GET
$app->get('/:day', function($day) use ($app, $service) {
$image = $service->find($day);
if (!$image) {
$app->notFound();
}
$app->render('images.html', $image);
}
)->conditions(array('day' => '([1-9]\d?|[12]\d\d|3[0-5]\d|36[0-6])
URL parameter... gets passed as an
argument
Condition 1 to 366
GET
![Page 63: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/63.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 63/135
GET
$app->get('/:day', function($day) use ($app, $service) {
$image = $service->find($day);
if (!$image) {
$app->notFound();
}
$app->render('images.html', $image);
}
)->conditions(array('day' => '([1-9]\d?|[12]\d\d|3[0-5]\d|36[0-6])
404!
POST (with redirect)
![Page 64: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/64.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 64/135
POST (with redirect)
$app->post('/admin/add-photo', function() use ($app, $service)
$data = $app->request()->post(); $service->save($data);
$app->redirect('/admin');
}
);
POST (with redirect)
![Page 65: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/65.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 65/135
POST (with redirect)
$app->post('/admin/add-photo', function() use ($app, $service)
$data = $app->request()->post(); $service->save($data);
$app->redirect('/admin');
}
);
$_POST data is i
the request objec
![Page 66: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/66.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 66/135
Multiple methods
![Page 67: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/67.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 67/135
Multiple methods
$app->map('/login', function() { // Login
})->via('GET', 'POST');
Multiple methods
![Page 68: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/68.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 68/135
Multiple methods
$app->map('/login', function() { // Login
})->via('GET', 'POST');
Not an HTTP Method
Multiple methods
![Page 69: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/69.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 69/135
Multiple methods
$app->map('/login', function() { // Login
})->via('GET', 'POST');
Not an HTTP Method
via() is the
awesome sauce
![Page 70: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/70.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 70/135
Logging and flash messaging
$app->post('/admin/clear-cache', function() use ($app) {
$log $app getLog();
![Page 71: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/71.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 71/135
$log = $app->getLog();
$cleared = null;
$clear = $app->request()->post('clear');
if ($clear == 1) {
if (apc_clear_cache('user')) {
$cleared = 'Cache was successfully cleared!';
} else {
$cleared = 'Cache was not cleared!';
$log->error('Cache not cleared'); }
}
$app->flash('cleared', $cleared);
$app->redirect('/admin');
}
);
$app->post('/admin/clear-cache', function() use ($app) {
$log $app >getLog(); Get the log from $app
![Page 72: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/72.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 72/135
$log = $app->getLog();
$cleared = null;
$clear = $app->request()->post('clear');
if ($clear == 1) {
if (apc_clear_cache('user')) {
$cleared = 'Cache was successfully cleared!';
} else {
$cleared = 'Cache was not cleared!';
$log->error('Cache not cleared'); }
}
$app->flash('cleared', $cleared);
$app->redirect('/admin');
}
);
Get the log from $app
$app->post('/admin/clear-cache', function() use ($app) {
$log $app >getLog(); Get the log from $app
![Page 73: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/73.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 73/135
$log = $app->getLog();
$cleared = null;
$clear = $app->request()->post('clear');
if ($clear == 1) {
if (apc_clear_cache('user')) {
$cleared = 'Cache was successfully cleared!';
} else {
$cleared = 'Cache was not cleared!';
$log->error('Cache not cleared'); }
}
$app->flash('cleared', $cleared);
$app->redirect('/admin');
}
);
Get the log from $app
Erro
$app->post('/admin/clear-cache', function() use ($app) {
$log = $app->getLog(); Get the log from $app
![Page 74: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/74.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 74/135
$log = $app->getLog();
$cleared = null;
$clear = $app->request()->post('clear');
if ($clear == 1) {
if (apc_clear_cache('user')) {
$cleared = 'Cache was successfully cleared!';
} else {
$cleared = 'Cache was not cleared!';
$log->error('Cache not cleared'); }
}
$app->flash('cleared', $cleared);
$app->redirect('/admin');
}
);
Get the log from $app
Erro
Flash message availthe next reque
Middleware
![Page 75: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/75.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 75/135
Middleware
“. . . a Slim application can have middlewarethat may inspect, analyze, or modify the application environment, request, and
response before and/or after the Slimapplication is invoked.”
http://docs.slimframework.com/pages/middleware-overview/
Hooks
![Page 76: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/76.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 76/135
Hooks
Hooks
![Page 77: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/77.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 77/135
slim.before
Hooks
![Page 78: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/78.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 78/135
slim.before
slim.before.router
Hooks
![Page 79: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/79.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 79/135
slim.before
slim.before.router
slim.before.dispatch
Hooks
![Page 80: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/80.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 80/135
slim.before
slim.before.router
slim.before.dispatch
slim.after.dispatch
Hooks
![Page 81: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/81.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 81/135
slim.before
slim.before.router
slim.before.dispatch
slim.after.dispatch
slim.after.router
Hooks
![Page 82: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/82.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 82/135
slim.before
slim.before.router
slim.before.dispatch
slim.after.dispatch
slim.after.router
slim.after
Hooks
![Page 83: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/83.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 83/135
slim.before
slim.before.router
slim.before.dispatch
slim.after.dispatch
slim.after.router
slim.after
class MyMiddleware extends \Slim\Middleware
{
public function call()
{
![Page 84: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/84.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 84/135
{
//The Slim application
$app = $this->app;
//The Environment object
$env = $app->environment();
//The Request object
$req = $app->request();
//The Response object
$res = $app->response();
//Optionally call the next middleware
$this->next->call();
}}
class MyMiddleware extends \Slim\Middleware
{
public function call()
{
Extend th
![Page 85: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/85.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 85/135
{
//The Slim application
$app = $this->app;
//The Environment object
$env = $app->environment();
//The Request object
$req = $app->request();
//The Response object
$res = $app->response();
//Optionally call the next middleware
$this->next->call();
}
}
class MyMiddleware extends \Slim\Middleware
{
public function call()
{
Extend th
Define call()
![Page 86: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/86.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 86/135
{
//The Slim application
$app = $this->app;
//The Environment object
$env = $app->environment();
//The Request object
$req = $app->request();
//The Response object
$res = $app->response();
//Optionally call the next middleware
$this->next->call();
}
}
Define call()
class MyMiddleware extends \Slim\Middleware{
public function call()
{
Extend th
Define call()
![Page 87: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/87.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 87/135
{
//The Slim application
$app = $this->app;
//The Environment object
$env = $app->environment();
//The Request object
$req = $app->request();
//The Response object
$res = $app->response();
//Optionally call the next middleware
$this->next->call();
}
}
Define call()
Inspect, analyze,and modify!
class MyMiddleware extends \Slim\Middleware{
public function call()
{
Extend th
Define call()
![Page 88: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/88.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 88/135
{
//The Slim application
$app = $this->app;
//The Environment object
$env = $app->environment();
//The Request object
$req = $app->request();
//The Response object
$res = $app->response();
//Optionally call the next middleware
$this->next->call();
}
}
Define call()
On to the nex
Inspect, analyze,and modify!
![Page 89: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/89.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 89/135
Middleware + Hooks = WIN
![Page 90: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/90.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 90/135
Navigation example
namespace Tsf\Middleware;
use \Zend\Authentication\AuthenticationService;
class Navigation extends \Slim\Middleware
![Page 91: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/91.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 91/135
g
{
/** * @var \Zend\Authentication\AuthenticationService
*/
private $auth;
public function __construct(AuthenticationService $auth)
{
$this->auth = $auth; }
public function call()
{
// . . .
}
}
namespace Tsf\Middleware;
use \Zend\Authentication\AuthenticationService;
class Navigation extends \Slim\Middleware extends
![Page 92: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/92.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 92/135
g
{
/** * @var \Zend\Authentication\AuthenticationService
*/
private $auth;
public function __construct(AuthenticationService $auth)
{
$this->auth = $auth; }
public function call()
{
// . . .
}
}
extends
namespace Tsf\Middleware;
use \Zend\Authentication\AuthenticationService;
class Navigation extends \Slim\Middleware extends
![Page 93: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/93.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 93/135
g
{
/** * @var \Zend\Authentication\AuthenticationService
*/
private $auth;
public function __construct(AuthenticationService $auth)
{
$this->auth = $auth; }
public function call()
{
// . . .
}
}
Constructor injectionFTW
extends
public function call()
{
$app = $this->app;
$auth = $this->auth;
![Page 94: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/94.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 94/135
$auth = $this >auth;
$req = $app->request();
$home = array('caption' => 'Home', 'href' => '/');
$admin = array('caption' => 'Admin', 'href' => '/admin');
$login = array('caption' => 'Login', 'href' => '/login');
$logout = array('caption' => 'Logout', 'href' => '/logout');
if ($auth->hasIdentity()) {
$navigation = array($home, $admin, $logout); } else {
$navigation = array($home, $login);
}
// . . .
}
public function call()
{
$app = $this->app;
$auth = $this->auth;Arrays ofnav items
![Page 95: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/95.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 95/135
$auth $this >auth;
$req = $app->request();
$home = array('caption' => 'Home', 'href' => '/');
$admin = array('caption' => 'Admin', 'href' => '/admin');
$login = array('caption' => 'Login', 'href' => '/login');
$logout = array('caption' => 'Logout', 'href' => '/logout');
if ($auth->hasIdentity()) {
$navigation = array($home, $admin, $logout); } else {
$navigation = array($home, $login);
}
// . . .
}
nav items
public function call()
{
$app = $this->app;
$auth = $this->auth;Arrays ofnav items
![Page 96: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/96.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 96/135
$auth $this >auth;
$req = $app->request();
$home = array('caption' => 'Home', 'href' => '/'); $admin = array('caption' => 'Admin', 'href' => '/admin');
$login = array('caption' => 'Login', 'href' => '/login');
$logout = array('caption' => 'Logout', 'href' => '/logout');
if ($auth->hasIdentity()) {
$navigation = array($home, $admin, $logout); } else {
$navigation = array($home, $login);
}
// . . .
}
nav items
Nav differs on auth st
public function call()
{
// . . .
$this->app->hook('slim.before.router', function () use (...) {
![Page 97: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/97.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 97/135
$ pp ( , () ( ) {
foreach ($navigation as &$link) {
if ($link['href'] == $req->getPath()) { $link['class'] = 'active';
} else {
$link['class'] = '';
}
}
$app->view()
->appendData(array('navigation' => $navigation));
}
);
$this->next->call();}
public function call()
{
// . . .
$this->app->hook('slim.before.router', function () use (...) {
Delicious hookgoodness
![Page 98: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/98.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 98/135
pp ( , () ( ) {
foreach ($navigation as &$link) {
if ($link['href'] == $req->getPath()) { $link['class'] = 'active';
} else {
$link['class'] = '';
}
}
$app->view()
->appendData(array('navigation' => $navigation));
}
);
$this->next->call();}
public function call()
{
// . . .
$this->app->hook('slim.before.router', function () use (...) {
Delicious hookgoodness
![Page 99: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/99.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 99/135
pp ,
foreach ($navigation as &$link) {
if ($link['href'] == $req->getPath()) { $link['class'] = 'active';
} else {
$link['class'] = '';
}
}
$app->view()
->appendData(array('navigation' => $navigation));
}
);
$this->next->call();}
Matchdispatched p
public function call()
{
// . . .
$this->app->hook('slim.before.router', function () use (...) {
Delicious hookgoodness
![Page 100: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/100.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 100/135
foreach ($navigation as &$link) {
if ($link['href'] == $req->getPath()) { $link['class'] = 'active';
} else {
$link['class'] = '';
}
}
$app->view()
->appendData(array('navigation' => $navigation));
}
);
$this->next->call();}
Matchdispatched p
Appen$navigatio
view
public function call()
{
// . . .
$this->app->hook('slim.before.router', function () use (...) {
Delicious hookgoodness
![Page 101: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/101.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 101/135
foreach ($navigation as &$link) {
if ($link['href'] == $req->getPath()) { $link['class'] = 'active';
} else {
$link['class'] = '';
}
}
$app->view()
->appendData(array('navigation' => $navigation));
}
);
$this->next->call();}
Matchdispatched p
Appen$navigatio
viewOn to the next!
![Page 102: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/102.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 102/135
Views
![Page 103: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/103.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 103/135
Two great tastesthat taste great together
Twig
![Page 104: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/104.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 104/135
Twig
![Page 105: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/105.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 105/135
Concise
Twig
![Page 106: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/106.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 106/135
Concise
Template oriented
Twig
![Page 107: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/107.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 107/135
Concise
Template oriented
Fast
Twig
![Page 108: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/108.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 108/135
Concise
Template oriented
Fast
Multiple inheritance
Twig
![Page 109: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/109.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 109/135
Concise
Template oriented
Fast
Multiple inheritance
Blocks
Twig
![Page 110: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/110.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 110/135
Concise
Template oriented
Fast
Multiple inheritance
Blocks
Automatic escaping
![Page 111: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/111.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 111/135
layout.htand
index.htm
![Page 112: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/112.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 112/135
layout.html
![Page 113: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/113.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 113/135
<title>{% block page_title %} {% endblock %}</tit
![Page 114: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/114.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 114/135
<ul class="nav">
{% for link in navigation %}
<li class="{{link.class}}">
<a href="{{link.href}}">{{link.caption}}<
</li>
{% endfor %}
</ul>
![Page 115: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/115.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 115/135
<h1>365 Days of Photography</h1>
<h3>Photographer: Jeremy Kendall</h3>
{% block content %} {% endblock %}
<hr />
![Page 116: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/116.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 116/135
index.html
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net{% endblock %}
{% block content %}
{% for image in images %}
![Page 117: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/117.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 117/135
g g
<div class="row">
<div class="span6"> <h2><a href="/{{image.day}}">{{image.day}}/365</a></h2 <p>
<a href="/{{image.day}}">
<img src="{{image.sizes.size.5.source}}" />
</a>
</p> <p>Posted {{image.posted|date("m/d/Y")}}</p>
</div></div>
{% else %}
<p>No images in project</p>
{% endfor %}{% endblock %}
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net{% endblock %}
{% block content %}
{% for image in images %}
extends
![Page 118: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/118.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 118/135
<div class="row">
<div class="span6"> <h2><a href="/{{image.day}}">{{image.day}}/365</a></h2 <p>
<a href="/{{image.day}}">
<img src="{{image.sizes.size.5.source}}" />
</a>
</p> <p>Posted {{image.posted|date("m/d/Y")}}</p>
</div></div>
{% else %}
<p>No images in project</p>
{% endfor %}{% endblock %}
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net{% endblock %}
{% block content %}
{% for image in images %}
extends
<title
![Page 119: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/119.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 119/135
<div class="row">
<div class="span6"> <h2><a href="/{{image.day}}">{{image.day}}/365</a></h2 <p>
<a href="/{{image.day}}">
<img src="{{image.sizes.size.5.source}}" />
</a>
</p> <p>Posted {{image.posted|date("m/d/Y")}}</p>
</div></div>
{% else %}
<p>No images in project</p>
{% endfor %}{% endblock %}
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net{% endblock %}
{% block content %}
{% for image in images %}
extends
<title
![Page 120: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/120.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 120/135
<div class="row">
<div class="span6"> <h2><a href="/{{image.day}}">{{image.day}}/365</a></h2 <p>
<a href="/{{image.day}}">
<img src="{{image.sizes.size.5.source}}" />
</a>
</p> <p>Posted {{image.posted|date("m/d/Y")}}</p>
</div></div>
{% else %}
<p>No images in project</p>
{% endfor %}{% endblock %}
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net{% endblock %}
{% block content %}
{% for image in images %}
extends
<title
iterator
![Page 121: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/121.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 121/135
<div class="row">
<div class="span6"> <h2><a href="/{{image.day}}">{{image.day}}/365</a></h2 <p>
<a href="/{{image.day}}">
<img src="{{image.sizes.size.5.source}}" />
</a>
</p> <p>Posted {{image.posted|date("m/d/Y")}}</p>
</div></div>
{% else %}
<p>No images in project</p>
{% endfor %}{% endblock %}
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net{% endblock %}
{% block content %}
{% for image in images %}
di l " "
extends
<title
iterator
![Page 122: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/122.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 122/135
<div class="row">
<div class="span6"> <h2><a href="/{{image.day}}">{{image.day}}/365</a></h2 <p>
<a href="/{{image.day}}">
<img src="{{image.sizes.size.5.source}}" />
</a>
</p> <p>Posted {{image.posted|date("m/d/Y")}}</p>
</div></div>
{% else %}
<p>No images in project</p>
{% endfor %}{% endblock %}
else
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net{% endblock %}
{% block content %}
{% for image in images %}
di l " "
extends
<title
iterator
![Page 123: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/123.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 123/135
<div class="row">
<div class="span6"> <h2><a href="/{{image.day}}">{{image.day}}/365</a></h2 <p>
<a href="/{{image.day}}">
<img src="{{image.sizes.size.5.source}}" />
</a>
</p> <p>Posted {{image.posted|date("m/d/Y")}}</p>
</div></div>
{% else %}
<p>No images in project</p>
{% endfor %}{% endblock %}
else
format
![Page 124: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/124.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 124/135
login.htm
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net | Login{% endblock %}
{% block content %}
![Page 125: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/125.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 125/135
{ }
<div class="row">
<div class="span4">
<h2>Login</h2>
{% if flash.error %}
<p style="color: red;">{{flash.error}}</p>
{% endif %} <form name="login" id="login" class="well" method="post">
// Login form . . . </form>
</div>
</div>
{% endblock %}
{% extends 'layout.html' %}
{% block page_title %}365.jeremykendall.net | Login{% endblock %}
{% block content %}
![Page 126: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/126.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 126/135
<div class="row">
<div class="span4">
<h2>Login</h2>
{% if flash.error %}
<p style="color: red;">{{flash.error}}</p>
{% endif %} <form name="login" id="login" class="well" method="post">
// Login form . . . </form>
</div>
</div>
{% endblock %}
![Page 127: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/127.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 127/135
The other viewswould be redundant
GOTO 0
![Page 128: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/128.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 128/135
Small but powerfulGOTO 0
![Page 129: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/129.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 129/135
p
Small but powerfulGOTO 0
![Page 130: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/130.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 130/135
p
Excellent tools to write elegant code
Small but powerfulGOTO 0
![Page 131: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/131.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 131/135
Excellent tools to write elegant code
Routing, middleware & hooks, views
Small but powerfulGOTO 0
![Page 132: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/132.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 132/135
Excellent tools to write elegant code
Routing, middleware & hooks, views
I just scratched the surface
Read
![Page 133: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/133.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 133/135
Slim: slimframework.com
Twig: twig.sensiolabs.org
Composer: getcomposer.org
MicroPHP Manifesto: microphp.org
Flaming Archer: http://git.io/rH0nrg
![Page 134: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/134.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 134/135
Questions?
Thanks!
![Page 135: Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall](https://reader034.vdocument.in/reader034/viewer/2022052406/577cd1541a28ab9e78942aec/html5/thumbnails/135.jpg)
8/13/2019 Keeping It Small - Getting to know the Slim micro framework - @JeremyKendall
http://slidepdf.com/reader/full/keeping-it-small-getting-to-know-the-slim-micro-framework-jeremykendall 135/135
@jeremykendall