Jelajahi Sumber

dev 2020-10

Max F 5 tahun lalu
induk
melakukan
a98740b2f6

+ 3 - 2
composer.json

@@ -12,10 +12,11 @@
         "php": ">=5.4.0"
     },
     "suggest": {
-        "phpgangsta/googleauthenticator": "*",
         "phpmailer/phpmailer": "*",
-        "paypal/rest-api-sdk-php": "*",
+		"predis/predis": "2.0.x-dev",
+        "phpgangsta/googleauthenticator": "*",
         "stripe/stripe-php": "*",
+        "paypal/rest-api-sdk-php": "*",
         "payplug/payplug-php": "*",
         "mpdf/mpdf": "*",
         "filp/whoops": "*",

+ 2 - 2
example/bin/console.php

@@ -20,8 +20,8 @@ ini_set('display_errors', 1);
 
 $app = new Kernel([
     new KarmaMiddlewares\ErrorHandler,
-    //new KarmaMiddlewares\ResponseTime,
-    new KarmaMiddlewares\SessionHandler,
+    //new KarmaMiddlewares\SessionHandler,
+    //new KarmaMiddlewares\AuthentificationHandler, // (not implemented)
     new KarmaMiddlewares\CommandRouter($argv),
 ]);
 

+ 1 - 1
example/www/index.php

@@ -28,7 +28,7 @@ $app = new Kernel([
     //new KarmaMiddlewares\GzipEncoding,
     //new KarmaMiddlewares\MaintenanceMode,
     new KarmaMiddlewares\SessionHandler,
-    //new Authentification, // (not implemented)
+    //new KarmaMiddlewares\AuthentificationHandler, // (not implemented)
     //new KarmaMiddlewares\CacheHtml(APP_DIR . '/var/cache/html', 3600),
     //new KarmaMiddlewares\CommandRouter($argv),
     //new KarmaMiddlewares\UrlGroupRouter,

+ 18 - 0
src/App/Middlewares/AuthentificationHandler.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace KarmaFW\App\Middlewares;
+
+use \KarmaFW\Http\Request;
+use \KarmaFW\Http\Response;
+
+
+class AuthentificationHandler
+{
+	
+	public function __invoke(Request $request, Response $response, callable $next)
+	{
+
+		return $next($request, $response);
+	}
+
+}

+ 6 - 0
src/App/Middlewares/SessionHandler.php

@@ -15,6 +15,12 @@ class SessionHandler
         //ini_set('session.save_path', $savePath);
         //ini_set('session.save_handler', 'files');
 
+        /*
+        // Pour utiliser Redis
+		ini_set('session.save_handler, "redis");
+		ini_set('session.save_path, "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2&read_timeout=2.5");
+        */
+
 		session_start();
 		
 		$response = $next($request, $response);

+ 1 - 1
src/App/Middlewares/UrlRouter.php

@@ -41,7 +41,7 @@ class UrlRouter
 
 			$content = ob_get_contents();
 			ob_end_clean();
-//var_dump($response); 
+
 			if (! empty($route_response) && is_a($route_response, Response::class)) {
 				$response = $route_response;
 			}

+ 48 - 0
src/Database/Redis/Redis.php

@@ -0,0 +1,48 @@
+<?php
+
+namespace KarmaFW\Database\Redis;
+
+use \Predis;
+
+
+class Redis
+{
+	protected $dsn = null;
+	protected $client = null;
+	
+	public function __construct($redis_dsn=null)
+	{
+		if (empty($redis_dsn) && defined('REDIS_DSN')) {
+			$redis_dsn = REDIS_DSN;
+		}
+
+		if (empty($redis_dsn)) {
+			$redis_dsn = 'tcp://localhost:6379';
+		}
+
+		$this->dsn = $redis_dsn;
+
+		$this->setClient(new Predis\Client($redis_dsn));
+	}
+
+	public function getClient()
+	{
+		return $this->client;
+	}
+
+	public function setClient($client)
+	{
+		$this->client = $client;
+	}
+
+	public function get($key)
+	{
+		return $this->client->get($key);
+	}
+
+	public function set($key, $value)
+	{
+		return $this->client->set($key, $value);
+	}
+}
+

+ 6 - 0
src/Kernel.php

@@ -6,6 +6,7 @@ use \KarmaFW\App\Container;
 use \KarmaFW\App\Pipe;
 use \KarmaFW\App\Tools;
 use \KarmaFW\Database\Sql\SqlDb;
+use \KarmaFW\Database\Redis\Redis;
 use \KarmaFW\Http\Request;
 use \KarmaFW\Http\Response;
 
@@ -28,6 +29,7 @@ class Kernel
 	];
 
 	protected $db = null;
+	protected $redis = null;
 
 	protected $middlewares;
 	protected $container;
@@ -90,6 +92,10 @@ class Kernel
 			$this->db = $this->connectDb('default', DB_DSN);
 		}
 
+		if (defined('REDIS_DSN')) {
+			$this->redis = new Redis(REDIS_DSN);
+		}
+
 
 		// Load helpers
 		Tools::loadHelpers(APP_DIR . '/src/helpers');