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
|
```bash
|
||||||
mkdir project_name;
|
mkdir project_name;
|
||||||
cd project_name;
|
cd project_name;
|
||||||
|
# Native
|
||||||
composer require 4lt/novaconium
|
composer require 4lt/novaconium
|
||||||
cp -R vendor/4lt/novaconium/examples/App/ .
|
# Composer
|
||||||
cp -R vendor/4lt/novaconium/examples/public/ .
|
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",
|
"name": "4lt/novaconium",
|
||||||
"description": "A high-performance PHP framework built from the past.",
|
"description": "A high-performance PHP framework built from the past.",
|
||||||
"version": "1.0.2",
|
"version": "1.0.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
<?php
|
<?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();
|
$session = new Session();
|
||||||
|
|
||||||
// Load Database Class
|
// Load Database Class
|
||||||
require_once(FRAMEWORKPATH . '/src/Database.php');
|
if (!empty($config['database']['host'])) {
|
||||||
$db = new Database($config['database']);
|
require_once(FRAMEWORKPATH . '/src/Database.php');
|
||||||
|
$db = new Database($config['database']);
|
||||||
|
}
|
||||||
|
|
||||||
// Load a controller
|
// Load a controller
|
||||||
require_once(FRAMEWORKPATH . '/src/Router.php');
|
require_once(FRAMEWORKPATH . '/src/Router.php');
|
||||||
|
|||||||
13
src/twig.php
13
src/twig.php
@@ -1,14 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
//Twig
|
//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 = new Twig\Loader\FilesystemLoader(BASEPATH . '/App/views/');
|
||||||
$loader->addPath(BASEPATH . '/vendor/4lt/novaconium/twig', 'novaconium');
|
$loader->addPath(BASEPATH . '/vendor/4lt/novaconium/twig', 'novaconium');
|
||||||
$loader->addPath(BASEPATH . '/App/templates', 'override');
|
$loader->addPath(BASEPATH . '/App/templates', 'override');
|
||||||
|
|
||||||
$twig = new Twig\Environment($loader);
|
$twig = new Twig\Environment($loader);
|
||||||
//check if file exists
|
|
||||||
|
// Add config to Twig globally
|
||||||
|
$twig->addGlobal('config', $config);
|
||||||
|
|
||||||
|
// Check if the template exists
|
||||||
if (file_exists(BASEPATH . '/App/views/' . $name . '.html.twig')) {
|
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;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
echo "Error: Twig Template ($name) Not Found.";
|
echo "Error: Twig Template ($name) Not Found.";
|
||||||
|
|||||||
Reference in New Issue
Block a user