3 Commits
1.0.2 ... 1.0.3

Author SHA1 Message Date
0c41ca9b65 1.0.3
release with blank db working
2025-03-14 01:54:52 +00:00
d183c4c1e0 Database allowed empty, twig grabs global vars 2025-03-03 12:23:02 -08:00
f76bbfb27c docs for quick install 2025-02-07 16:17:55 -08:00
7 changed files with 110 additions and 10 deletions

View File

@@ -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)

View File

@@ -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": [
{ {

View File

@@ -1,2 +1,2 @@
<?php <?php
echo $twig->render('index.html.twig'); view('index');

72
docs/docker.md Normal file
View 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
View File

@@ -0,0 +1,3 @@
# Twig Overrides
You can override twig templates by creating the same file in the templates directory.

View File

@@ -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');

View File

@@ -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);
//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')) { 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.";