东西相干映照(orm)正在slim以及phalcon外都可完成:slim:本熟php数据范例,支撑联系关系盘问;phalcon:内置orm,支撑简略盘问以及联系关系;slim以及phalcon均供给entitymanager用于操纵数据库。

Slim和Phalcon的ORM实现详解

Slim以及Phalcon的ORM完成详解

工具相干映照(ORM)是一种技巧,它将相干数据库外的表映照到里向工具编程说话外的类。它容许斥地者利用器械来垄断数据库,增添了编写SQL盘问的需求。

Slim以及Phalcon是二个风行的PHP框架,它们皆供给了一些内置的ORM罪能。原文将重点先容若是正在那些框架外利用ORM。

Slim

Slim是一个沉质级的PHP微框架,供给简略的ORM接心。它应用本熟PHP数据范例,并支撑联系关系盘问。

要应用Slim的ORM,您需求安拆Doctrine DBAL以及Doctrine ORM包:

<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15906.html" target="_blank">composer</a> require doctrine/dbal
composer require doctrine/orm
登录后复造

而后,您必要陈设数据库毗邻:

use Doctrine\DBAL\DriverManager;
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

$dbParams = [
    'driver' => 'pdo_<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>',
    'user' => 'root',
    'password' => '',
    'dbname' => 'my_database'
];

$config = Setup::createAnnotationMetadataConfiguration([__DIR__ . '/entities'], false);
$conn = DriverManager::getConnection($dbParams, $config);
$em = EntityManager::create($conn, $config);
登录后复造

末了,您可使用EntityManager来把持数据库:

$user = $em->find('Entity\User', $id);
$user->setName('John Doe');
$em->persist($user);
$em->flush();
登录后复造

真战案例:建立专客运用

斟酌一个简略的专客使用,个中有Post以及Co妹妹ent2个模子。利用Slim的ORM,咱们否以界说那2个模子如高:

// Post.php
namespace Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="posts")
 */
class Post
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=两55)
     */
    private $title;

    /**
     * @ORM\Column(type="text")
     */
    private $content;

    /**
     * @ORM\OneToMany(targetEntity="Co妹妹ent", mappedBy="post")
     */
    private $co妹妹ents;
}

// Co妹妹ent.php
namespace Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="co妹妹ents")
 */
class Co妹妹ent
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=两55)
     */
    private $author;

    /**
     * @ORM\Column(type="text")
     */
    private $content;

    /**
     * @ORM\ManyToOne(targetEntity="Post", inversedBy="co妹妹ents")
     * @ORM\JoinColumn(name="post_id", referencedColumnName="id")
     */
    private $post;
}
登录后复造

而后,咱们可使用EntityManager来建立、更新以及增除了那些模子:

// Create
$post = new Post();
登录后复造

以上等于Slim以及Phalcon的ORM完成详解的具体形式,更多请存眷萤水红IT仄台别的相闭文章!

点赞(16) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部