https://github.com/peterujah/php-router-template
A simple php class to help render template in routers and fix additional slash issue
https://github.com/peterujah/php-router-template
Last synced: 8 months ago
JSON representation
A simple php class to help render template in routers and fix additional slash issue
- Host: GitHub
- URL: https://github.com/peterujah/php-router-template
- Owner: peterujah
- License: mit
- Created: 2022-06-06T06:49:01.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-11-15T18:42:27.000Z (over 3 years ago)
- Last Synced: 2025-07-15T01:37:31.342Z (11 months ago)
- Language: PHP
- Homepage:
- Size: 65.4 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# php-router-template
A simple php class to help render template in routers and fix additional slash issue.
### IMPORTANT
You do not have to install, download nor use this class, i wrote the class for my personal needs, the first time i starting using router in my project instead of old ways. The only important the about this class is `deep` method which fixed the issue with extra shlash as posted on stackoverflow question here [style disappear when i add slash / after route](https://stackoverflow.com/questions/64298425/style-disappear-when-i-add-slash-after-route)
And making it easy for me to access any defined global variables within the template since am not using any php framework.
So please just ignore the project, even though i have claerly documented the class and showed usage sample, it because i like wasing my time on beautiful usles codes and likes to wrap all my ever writing functions is a class because i might need it again. What about composer installation? Yah i know, it free so i used.
Installation is super-easy via Composer:
```md
composer require peterujah/php-router-templete
```
# USAGES
Initialize RouterTemplate with the necessary parameters and register your custom classes.
```php
$template = new \Peterujah\NanoBlock\RouterTemplate(__DIR__, false);
$template->addUser(new User(User::LIVE))->addFunc(new Functions())->addConfig(new Config());
```
Render template by passing the directory deep method as the first parameter while optional options array will be the second parameter.
```php
$template->Render("home")->with($template->deep(1));
```
A shorthand to the above method should be using `withDept` method and only passing the directory dept integer as the first parameter while optional options array will be the second parameter.
```php
$template->Render("home")->view(1);
```
Using the class with [Bramus Router](https://github.com/bramus/router) or any other php router as you wish. Initialize your router instance
```php
$router = new \Bramus\Router\Router();
```
Render hompage template using `with` and `deep` method.
```php
$router->get('/', function() use ($template) {
$template->Build("home")->with($template->deep(0));
});
```
Render hompage template using `view` method.
```php
$router->get('/', function() use ($template) {
$template->Build("home")->view(0);
});
```
Render update product template with product id as the second url parameter.
```php
$router->get('/update/([a-zA-Z0-9]+)', function($id) use ($template) {
$template->Build("product")->view(1);
/*
Using with method below
$template->Build("product")->with($template->deep(1));
*/
});
```
Render update product template with product id as second url parameter and passing additional options to the template.
```php
$router->get('/update/([a-zA-Z0-9]+)', function($id) use ($template) {
$template->Build("product")->view(1, [
"foo" => "Our Foo"
"bar" => "Our Bar id {$id}"
]);
});
```
Accessing all global variables within a template file `/router/product.php`.
```php
Router template
News -
doStuff();
/* Call User methods */
$user->doAnything()
/* Gets user information */
$person->name;
/* Access options from template */
echo $self["foo"];
/* Project root directory */
echo $root;
?>
Unbreakable image
Unbreakable link
A New Page
```