前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >PHP面向对象-ORM示例

PHP面向对象-ORM示例

原创
作者头像
堕落飞鸟
发布2023-04-29 08:25:24
发布2023-04-29 08:25:24
72500
代码可运行
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
运行总次数:0
代码可运行

使用PHP中的Doctrine ORM框架来演示。Doctrine ORM是一个基于PHP的ORM框架,它提供了一组工具和API,用于将数据存储到数据库中、从数据库中检索数据、定义映射关系和处理异常。下面是一个基本的使用示例:

配置ORM框架

首先,我们需要配置Doctrine ORM框架。在这个例子中,我们将使用MySQL数据库。我们需要提供数据库连接信息,如主机名、数据库名称、用户名和密码。我们还需要定义实体的命名空间和实体映射的目录。

代码语言:javascript
代码运行次数:0
复制
<?php
// bootstrap.php

require_once "vendor/autoload.php";

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

$paths = array(__DIR__."/src/Entity");
$isDevMode = true;

// the connection configuration
$dbParams = array(
    'driver'   => 'pdo_mysql',
    'host'     => 'localhost',
    'dbname'   => 'my_database',
    'user'     => 'my_username',
    'password' => 'my_password',
);

$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$entityManager = EntityManager::create($dbParams, $config);

定义实体

接下来,我们需要定义实体类。实体类是面向对象编程语言中的类,它映射到关系型数据库中的表。我们可以使用注释来定义实体类及其属性之间的映射关系。下面是一个简单的实体类的例子:

代码语言:javascript
代码运行次数:0
复制
<?php
// src/Entity/User.php

namespace MyProject\Entity;

use Doctrine\ORM\Mapping as ORM;

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

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $email;

    public function getId()
    {
        return $this->id;
    }

    public function getName()
    {
        return $this->name;
    }

    public function setName($name)
    {
        $this->name = $name;
    }

    public function getEmail()
    {
        return $this->email;
    }

    public function setEmail($email)
    {
        $this->email = $email;
    }
}

执行数据库操作

现在,我们可以使用Doctrine ORM框架提供的API来执行数据库操作。下面是一些基本的示例操作::

代码语言:javascript
代码运行次数:0
复制
<?php
// examples.php

require_once "bootstrap.php";

use MyProject\Entity\User;

// create a new user
$user = new User();
$user->setName("John Doe");
$user->setEmail("john.doe@example.com");

$entityManager->persist($user);
$entityManager->flush();

echo "Created User with ID " . $user->getId() . "\n";

// find a user by ID
$user = $entityManager->find('MyProject\Entity\User', 1);

if ($user === null) {
    echo "User not found.\n";
    exit(1);
}

echo sprintf("User: %s (%s)\n", $user->getName(), $user->getEmail());

// update a user
$user->setName("Jane Doe");
$user->setEmail("jane.doe@example.com");
$entityManager->flush();

echo sprintf("Updated User: %s (%s)\n", $user->getName(), $user->getEmail());

// delete a user
$entityManager->remove($user);
$entityManager->flush();

echo "Deleted User with ID " . $user->getId() . "\n";

在这个示例中,我们创建了一个新的用户实体,并将其持久化到数据库中。然后,我们通过ID查找了用户实体,并更新了其属性。最后,我们删除了用户实体。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 配置ORM框架
  • 定义实体
  • 执行数据库操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档