https://github.com/dotblue/nette-webimages
On-the-fly generated web images for your Nette app
https://github.com/dotblue/nette-webimages
Last synced: about 1 year ago
JSON representation
On-the-fly generated web images for your Nette app
- Host: GitHub
- URL: https://github.com/dotblue/nette-webimages
- Owner: dotblue
- License: other
- Created: 2014-05-05T07:04:37.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2020-11-08T06:04:35.000Z (over 5 years ago)
- Last Synced: 2024-10-04T12:52:33.463Z (over 1 year ago)
- Language: PHP
- Size: 47.9 KB
- Stars: 26
- Watchers: 13
- Forks: 18
- Open Issues: 7
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
#### Requirements
- PHP 5.4+
- [nette/application](https://github.com/nette/application) >= 2.2
- [nette/di](https://github.com/nette/di) >= 2.2
- [nette/http](https://github.com/nette/http) >= 2.2
- [latte/latte](https://github.com/nette/latte) >= 2.2
- [nette/utils](https://github.com/nette/utils) >= 2.2
## Installation
1) Copy source codes from Github or using [Composer](http://getcomposer.org/):
```sh
$ composer require dotblue/nette-webimages
```
2) Register as Configurator's extension:
```
extensions:
webimages: DotBlue\WebImages\Extension
```
## Concept
This addon gives you power to automatically generate different sized versions of images throughout your app. When browser will request new version of image, application will generate it and save it to its requested destination, so that in next HTTP request, your server will just serve existing file.
To enable this, modify your `.htaccess`:
```
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|css|rar|zip|tar\.gz)$ index.php [L]
```
## Usage
First, you have to define your `DotBlue\WebImages\IProvider` implementation. Its responsibility is to generate new version of image using `Nette\Image`. Check [examples](examples) for inspiration - the only required method `getImage` should return `Nette\Image` instance of queried image.
When you have it, register it in configuration:
```
webimages:
providers:
-
```
Secondly you have to specify route where your images will be available. Central point of the route is `id` parameter, which should uniquely identify your image. Lets setup simple route:
```
webimages:
routes:
- images/-x.jpg
```
> By default all these routes will be prepended before your other routes - assuming you use `Nette\Application\Routers\RouteList` as your root router. You can disable this by setting `prependRoutesToRouter: false`. Then it's your responsibility to plug webimages router (service `webimages.router`) to your routing implementation.
Addon gives you new macro `n:src`. Now you're ready to use it.
```html
```
This will result in following HTML:
```html
```
Creation of this file will handle your implementation of `DotBlue\WebImages\IProvider`.
### HTTPS
To toggle secured route flag use following syntax in your configuration:
```
webimages:
routes:
- mask: images/-x.jpg
secured: true
```