Browse Source

dev 2020-09

Max F 5 years ago
parent
commit
5fedf65fe3
2 changed files with 203 additions and 41 deletions
  1. 106 41
      Readme.md
  2. 97 0
      src/Readme.md

+ 106 - 41
Readme.md

@@ -1,3 +1,11 @@
+                                         
+  _  __                          _______        __
+ | |/ /__ _ _ __ _ __ ___   __ _|  ___\ \      / /
+ | ' // _` | '__| '_ ` _ \ / _` | |_   \ \ /\ / / 
+ | . \ (_| | |  | | | | | | (_| |  _|   \ V  V /  
+ |_|\_\__,_|_|  |_| |_| |_|\__,_|_|      \_/\_/   
+                                                                                                 
+
 
 # Présentation
 
@@ -9,33 +17,71 @@ KarmaFW est un mini framework PHP qui gère le routing, les templates et les con
 - Routing Web
 - Templates PHP/HTML
 - Connexions SQL
-- Envoi d'emails (SMTP)
 - FileUpload web
+- Envoi d'emails (SMTP)
 - Paiements: Paypal, Payplug, Stripe
 - Auth: GoogleAuthenticator, SmsAuthenticator
 - PDF: création de PDF (HTML to PDF)
 - SMS: Envoi de SMS (Free & SmsEnvoi.com)
 - Hooks PHP
-- Bitly: génération d'url minimifiées Bitly
+- Bitly: génération d'url bit.ly
 
 
+### Pré-requis
 
+Composer est nécessaire afin de gérer les autoload des classes PHP.
 
 
-## Configuration
+## Structure d'une [app console](src/)
 
-Les paramètres de configuration de l'application se déclarent dans le fichier ./config/config.php
+```
+bin
+    app_console.php
+config
+    config.php
+src
+    Models
+    helpers
+vendor
+```
+
+
+## Structure d'une [app web](src/)
 
-Le nom de l'application est à définir dans la variable APP_NAME.
 ```
-define('APP_NAME', "Mon app PHP");
+config
+    config.php
+    routes.php
+public
+    .htaccess
+    index.php
+    images
+    css
+    js
+    vendor
+src
+  Controllers
+    MyAppController
+    HomeController
+  Models
+    User
+  helpers
+    helpers_myapp.php
+templates
+    homepage.tpl.php
+vendor
+    karmasolutions/karmafw
 ```
 
 
-### Pré-requis
+# Configuration
 
-Composer est nécessaire afin de gérer les autoload des classes PHP.
+Les paramètres de configuration de l'application se déclarent dans le fichier ./config/config.php
 
+Le nom de l'application est à définir dans la variable APP_NAME.
+```
+define('APP_NAME', "Mon app PHP");
+```
 
 ### [Routing](src/Routing/)
 
@@ -60,42 +106,24 @@ define('DB_DSN', 'mysql://user:password@localhost/db_name');
 ```
 
 
-## Structure du projet web
-
-```
-config
-	config.php
-	routes.php
-public
-	index.php
-	.htaccess
-src
-  Controllers
-  	MyAppController
-  	HomeController
-  Models
-  	User
-  helpers
-  	helpers_myapp.php
-templates
-	homepage.tpl.php
-vendor
-	karmasolutions/karmafw
-```
-
-
-# Nouveau projet
+# Utilisation
 
 
-## 0) se positionner dans le dossier du projet
+## Création d'un nouveau projet
 
-## 1) lancer `composer init`
+```
+$ mkdir /var/www/my_app
+$ cd /var/www/my_app
+```
 
-## 2) modifier composer.json
 
+1) Composer
+```
+$ composer init
 ```
-# Ajouter ceci dans composer.json
 
+Ajouter ceci dans composer.json :
+```
 {
     "repositories": [
         {
@@ -111,7 +139,12 @@ vendor
 ```
 
 
-## 3) créer le dossier public et le fichier public/index.php et le remplir avec ceci :
+3) DocumentIndex
+```
+mkdir -p public
+nano public/index.php
+```
+
 ```
 <?php
 
@@ -153,9 +186,14 @@ require APP_DIR . '/config/routes.php';
 ```
 
 
-## 4) créer le dossier config
+4) App config
+
+Créer le fichier config/config.php et le remplir avec ceci :
+```
+mkdir -p config
+nano config/config.php
+```
 
-## 4a) créer le fichier config/config.php et le remplir avec ceci :
 ```
 <?php
 
@@ -169,7 +207,11 @@ define('APP_NAME', "MyAPP");
 
 ```
 
-## 4b) créer le fichier config/routes.php et le remplir avec ceci :
+Créer le fichier config/routes.php et le remplir avec ceci :
+```
+nano config/routes.php
+```
+
 ```
 <?php
 
@@ -183,7 +225,13 @@ Router::get('/', ['MyApp\\Controllers\\HomeController', 'homepage'])->setName('h
 
 ```
 
+
 ## 5) Homepage controller : src/Controllers/MyAppController.php
+```
+mkdir -p src/Controllers
+nano src/Controllers/MyAppController.php
+```
+
 ```
 <?php
 
@@ -216,6 +264,10 @@ class MyAppController extends WebAppController
 
 
 ## 6) Homepage controller : src/Controllers/HomeController.php
+```
+nano src/Controllers/HomeController.php
+```
+
 ```
 <?php
 
@@ -247,6 +299,11 @@ class HomeController extends MyAppController
 
 
 ## 7) Homepage template : templates/homepage.tpl.php
+```
+mkdir -p templates
+nano templates/homepage.tpl.php
+```
+
 ```
 <html>
 <head>
@@ -265,6 +322,10 @@ class HomeController extends MyAppController
 
 
 ## 8a) Layout : templates/layout.tpl.php
+```
+nano templates/layout.tpl.php
+```
+
 ```
 <html>
 <head>
@@ -281,6 +342,10 @@ class HomeController extends MyAppController
 ```
 
 ## 8b) Homepage template avec layout : templates/homepage2.tpl.php
+```
+nano templates/homepage2.tpl.php
+```
+
 ```
 {layout layout.tpl.php}
 

+ 97 - 0
src/Readme.md

@@ -0,0 +1,97 @@
+
+
+# App
+
+```
+class App
+```
+
+
+```
+boot()
+# This method loads helpers files and init the SQL db connection.
+```
+
+```
+registerHelpersDir($dir)
+# Add a directory to the helpers directories
+```
+
+```
+loadHelpers($dir)
+# Load all helpers files in a directory
+```
+
+```
+[getDb($instance_name=null, $dsn=null)](Database/Sql/)
+# Load a SQL db connection
+```
+
+```
+createOrmItem($table_name, $primary_key_values=[], $db=null)
+```
+
+
+# WebApp
+
+```
+class WebApp extends App
+```
+
+
+```
+boot()
+# This method init the PHP session. It also calls App:boot()
+```
+
+
+```
+[createTemplate($tpl_path=null, $variables=[], $layout=null, $templates_dirs=null)](Templates/)
+# Create a PHP/HTML template object
+```
+
+
+```
+getUser
+# 
+```
+
+```
+setUser
+# 
+```
+
+```
+[route](Routing/)
+# Parse the current url and calls the defined controller method regarding the routes configuration.
+```
+
+```
+error
+# Display an error page
+```
+
+```
+error400
+# 
+```
+
+```
+error403
+# 
+```
+
+```
+error404
+# 
+```
+
+```
+error500
+# 
+```
+
+```
+error503
+# 
+```