Browse Source

[php] Codeigniter 4 remove database connect from BaseController (#7723)

* Remove Database::connect() from BaseController

* Clean index.php
Joan Miquel 2 years ago
parent
commit
6c7702fe10

+ 1 - 1
frameworks/PHP/codeigniter/app/Controllers/BaseController.php

@@ -48,6 +48,6 @@ abstract class BaseController extends Controller
         // Preload any models, libraries, etc, here.
 
         // E.g.: $this->session = \Config\Services::session();
-        $this->db = \Config\Database::connect();
+        
     }
 }

+ 7 - 5
frameworks/PHP/codeigniter/app/Controllers/Bench.php

@@ -2,6 +2,8 @@
 
 namespace App\Controllers;
 
+use App\Libraries\DbRaw;
+
 class Bench extends BaseController
 {
     public function plaintext()
@@ -17,7 +19,7 @@ class Bench extends BaseController
 
     public function db()
     {
-        $worlds = $this->db
+        $worlds = Dbraw::get()
             ->query('SELECT * FROM World WHERE id = ?', array(mt_rand(1, 10000)))
             ->getRow();
 
@@ -30,7 +32,7 @@ class Bench extends BaseController
         $queries = is_numeric($queries) ? min(max($queries, 1), 500) : 1;
 
         for ($i = 0; $i < $queries; ++$i) {
-            $worlds[] = $this->db
+            $worlds[] = Dbraw::get()
                 ->query('SELECT * FROM World WHERE id = ?', array(mt_rand(1, 10000)))
                 ->getRow();
         }
@@ -45,12 +47,12 @@ class Bench extends BaseController
 
         for ($i = 0; $i < $queries; ++$i) {
             $id = mt_rand(1, 10000);
-            $world = $this->db
+            $world = Dbraw::get()
                 ->query('SELECT * FROM World WHERE id = ?', [$id])
                 ->getRow();
             
             $world->randomNumber = mt_rand(1, 10000);
-            $this->db
+            Dbraw::get()
                 ->query('UPDATE World SET randomNumber=? WHERE id=?', [$world->randomNumber, $id]);
             $worlds[] = $world;
         }
@@ -60,7 +62,7 @@ class Bench extends BaseController
 
     public function fortunes()
     {
-        $fortunes = $this->db
+        $fortunes = Dbraw::get()
             ->query('SELECT * FROM Fortune')
             ->getResultArray();
 

+ 15 - 0
frameworks/PHP/codeigniter/app/Libraries/DbRaw.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace App\Libraries;
+
+use Config\Database;
+
+class DbRaw
+{
+    public static $db;
+
+    public static function get()
+    {
+        return self::$db ?? self::$db = Database::connect();
+    }
+}

+ 2 - 15
frameworks/PHP/codeigniter/public/index.php

@@ -1,17 +1,4 @@
 <?php
-
-// Check PHP version.
-$minPhpVersion = '7.4'; // If you update this, don't forget to update `spark`.
-if (version_compare(PHP_VERSION, $minPhpVersion, '<')) {
-    $message = sprintf(
-        'Your PHP version must be %s or higher to run CodeIgniter. Current version: %s',
-        $minPhpVersion,
-        PHP_VERSION
-    );
-
-    exit($message);
-}
-
 // Path to the front controller (this file)
 define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR);
 
@@ -53,8 +40,8 @@ require_once SYSTEMPATH . 'Config/DotEnv.php';
 
 $app = Config\Services::codeigniter();
 $app->initialize();
-$context = is_cli() ? 'php-cli' : 'web';
-$app->setContext($context);
+//$context = is_cli() ? 'php-cli' : 'web';
+$app->setContext('web');
 
 /*
  *---------------------------------------------------------------