Laravel 数据库 Table 纯模型实现 PHP

Laravel DB Table Model Implementation in Pure PHP

我过去参与过一些 Laravel 项目。创建 table 并在控制器中使用它们非常简单。但是,我主要使用纯 PHP。其中大多数不是 class 基于对象的。我想编写类似于 Laravel 模型系统的代码。我认为手动生成一个 DB table 会很有帮助。

我需要实现以下目标:

手动创建一个table并使class与table同名。 class 应该能够在创建对象时使用 class 名称获取所有 table 信息(字段、id 等)(不分配 table 名称)。

class 应该能够动态获取 table 字段,并且必须能够使用 Object->save() 保存数据,并使用 id 获取一行:$obj=Object::find(2);

class drivers extends Model
{
//'''''
}

$driver = new $driver();
$diver->name="foo";
$diver->age=19;
$diver->save();
//------------
$diver=Driver::find(3);
$diver->delete();

我想在纯粹的 PHP 中完成上述操作,但我无法管理。谁能帮忙?非常感谢,谢谢。

我这样试过:

<?php

class  Model
{

   protected function __construct() {

    public static function find($id){
        $tablename=get_somehow_extented_classname;
        //....

        return $datarow;
    }

    public static function delete($id){
        $tablename=get_somehow_extented_classname;
        //....
        $result=query("delete from $tablename where id=$id");

        return $result;
    }
}

use Model; // core model (I want this)

class drivers extends Model
{
    // nothing lot of things here
}

找到了我的问题的解决方案 -> https://medium.com/@kshitij206/use-eloquent-without-laravel-7e1c73d79977 谢谢..

这里我做了一些步骤..(有时对其他人有帮助) 在 xammp 中创建文件夹(我的 php 运行 环境)

已执行composer require illuminate/database

在 root

上创建了 bootstrap.php
<?php

require "vendor/autoload.php";

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;

$capsule->addConnection([

   "driver" => "mysql",

   "host" =>"127.0.0.1",

   "database" => "testdatabase",

   "username" => "root",

   "password" => ""

]);

//Make this Capsule instance available globally.
$capsule->setAsGlobal();

// Setup the Eloquent ORM.
$capsule->bootEloquent();

$capsule->bootEloquent();

在 root

上创建了 admins.php
<?php
require "vendor/autoload.php";
use Illuminate\Database\Eloquent\Model;

class admins extends Model
{

          public $timestamps = false;
          protected $primaryKey = 'admin_id';//primery key defaut id

}

在 root

上创建了 test.php
<?php

require "bootstrap.php";
require "admins.php";


$admin = new admins;
$admin->admin_email="sdfdfd@.sds";
$admin->admin_password="ljkklj";
$admin->username="sdfdfd";
$admin->profile_img ="pic0943.png";
$admin->save();

//....
$admin2=admins::find(2);

它正在运行...我将在我未来的纯 php 项目中使用它 :)