Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c41ca9b65 | |||
| d183c4c1e0 | |||
| f76bbfb27c |
20
README.md
20
README.md
@@ -16,7 +16,23 @@ Master Repo: https://git.4lt.ca/4lt/novaconium
|
||||
```bash
|
||||
mkdir project_name;
|
||||
cd project_name;
|
||||
# Native
|
||||
composer require 4lt/novaconium
|
||||
cp -R vendor/4lt/novaconium/examples/App/ .
|
||||
cp -R vendor/4lt/novaconium/examples/public/ .
|
||||
# Composer
|
||||
docker run --rm --interactive --tty --volume $PWD:/app composer require 4lt/novaconium
|
||||
cp -R vendor/4lt/novaconium/defaults/App/ .
|
||||
cp -R vendor/4lt/novaconium/defaults/public/ .
|
||||
```
|
||||
|
||||
#### Compose install (debian)
|
||||
|
||||
```bash
|
||||
sudo nala install curl php-cli php-mbstring git unzip
|
||||
curl -sS https://getcomposer.org/installer -o composer-setup.php
|
||||
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
|
||||
rm composer-setup.php
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
* [Docker Setup](https://git.4lt.ca/4lt/novaconium)
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "4lt/novaconium",
|
||||
"description": "A high-performance PHP framework built from the past.",
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.3",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?php
|
||||
echo $twig->render('index.html.twig');
|
||||
view('index');
|
||||
|
||||
72
docs/docker.md
Normal file
72
docs/docker.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# Getting Started With Docker
|
||||
|
||||
## Clone Docker Cookbooks
|
||||
|
||||
[Github Docker Compose Cookbooks](https://github.com/nickyeoman/docker-compose-cookbooks)
|
||||
|
||||
```bash
|
||||
git clone git@github.com:nickyeoman/docker-compose-cookbooks.git /docker-compose-cookbooks
|
||||
```
|
||||
|
||||
## Setup Docker Compose File
|
||||
|
||||
Read the sample extends file of /docker-compose-cookbooks/phpcontainer/sample-extends.yml
|
||||
|
||||
```bash
|
||||
# ensure docker-compose exists
|
||||
[[ -f docker-compose.yml ]] || echo "services:" > docker-compose.yml
|
||||
|
||||
# PHP container
|
||||
tail -n+2 /docker-compose-cookbooks/phpcontainer/sample-extends.yml >> docker-compose.yml
|
||||
|
||||
# PHP settings
|
||||
cp -r /docker-compose-cookbooks/phpcontainer/config .
|
||||
|
||||
# Set project directory
|
||||
sed -i 's|- "./project:/data"|- "./:/data"|' docker-compose.yml
|
||||
|
||||
# Mariadb container
|
||||
tail -n +2 /docker-compose-cookbooks/mariadb/sample-extends.yml >> docker-compose.yml
|
||||
|
||||
```
|
||||
|
||||
## ENV File
|
||||
|
||||
Then setup the .env file, which should look something like this:
|
||||
|
||||
```
|
||||
COOKBOOK=/docker-compose-cookbooks
|
||||
COMPOSE_PROJECT_NAME=myProject
|
||||
TZ=America/Vancouver
|
||||
VOL_CONFIG_PATH=/data/myProject/config
|
||||
VOL_PATH=/data/myProject/data
|
||||
|
||||
# PHP Container
|
||||
PHPCONTAINER_IMAGE=4lights/phpcontainer:latest
|
||||
|
||||
# MariaDB
|
||||
MARIADB_IMAGE=mariadb:latest
|
||||
MARIADB_MARIADB_DATABASE=mydb
|
||||
MARIADB_MARIADB_ROOT_PASSWORD=ChangeThisPassword0123456789ABCD
|
||||
MARIADB_MARIADB_PASSWORD=AlsoChangeThisPassword0123456789
|
||||
MARIADB_MARIADB_USER=dbuser
|
||||
```
|
||||
|
||||
## APP Database config
|
||||
|
||||
Open the /App/config.php file and change the database section to match the above:
|
||||
|
||||
```php
|
||||
'database' => [
|
||||
'host' => 'mariadb',
|
||||
'name' => 'mydb',
|
||||
'user' => 'dbuser',
|
||||
'pass' => 'AlsoChangeThisPassword0123456789',
|
||||
'port' => 3306
|
||||
],
|
||||
```
|
||||
|
||||
|
||||
## Start Docker
|
||||
|
||||
```docker compose up -d```
|
||||
3
docs/twig-overrides.md
Normal file
3
docs/twig-overrides.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Twig Overrides
|
||||
|
||||
You can override twig templates by creating the same file in the templates directory.
|
||||
@@ -18,8 +18,10 @@ require_once(FRAMEWORKPATH . '/src/Session.php');
|
||||
$session = new Session();
|
||||
|
||||
// Load Database Class
|
||||
require_once(FRAMEWORKPATH . '/src/Database.php');
|
||||
$db = new Database($config['database']);
|
||||
if (!empty($config['database']['host'])) {
|
||||
require_once(FRAMEWORKPATH . '/src/Database.php');
|
||||
$db = new Database($config['database']);
|
||||
}
|
||||
|
||||
// Load a controller
|
||||
require_once(FRAMEWORKPATH . '/src/Router.php');
|
||||
|
||||
15
src/twig.php
15
src/twig.php
@@ -1,14 +1,21 @@
|
||||
<?php
|
||||
|
||||
//Twig
|
||||
function view($name = '', $data = [] ) {
|
||||
function view($name = '', $data = []) {
|
||||
global $config; // Use the globally included $config
|
||||
|
||||
$loader = new Twig\Loader\FilesystemLoader(BASEPATH . '/App/views/');
|
||||
$loader->addPath(BASEPATH . '/vendor/4lt/novaconium/twig', 'novaconium');
|
||||
$loader->addPath(BASEPATH . '/App/templates', 'override');
|
||||
$twig = new Twig\Environment($loader);
|
||||
//check if file exists
|
||||
|
||||
$twig = new Twig\Environment($loader);
|
||||
|
||||
// Add config to Twig globally
|
||||
$twig->addGlobal('config', $config);
|
||||
|
||||
// Check if the template exists
|
||||
if (file_exists(BASEPATH . '/App/views/' . $name . '.html.twig')) {
|
||||
echo $twig->render("$name" . '.html.twig', $data);
|
||||
echo $twig->render("$name.html.twig", $data);
|
||||
return true;
|
||||
} else {
|
||||
echo "Error: Twig Template ($name) Not Found.";
|
||||
|
||||
Reference in New Issue
Block a user