首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Symfony 2/Doctrine 2实体中存储空间点?

在Symfony 2/Doctrine 2实体中存储空间点,可以使用Doctrine的YAML配置文件或数据库抽象层。以下是在YAML配置文件和数据库抽象层中存储空间点的示例:

YAML配置文件

  1. config/packages/doctrine.yaml文件中添加配置项:
代码语言:yaml
复制

doctrine:

代码语言:txt
复制
   orm:
代码语言:txt
复制
       mappings:
代码语言:txt
复制
           App:
代码语言:txt
复制
               is_bundle:     true
代码语言:txt
复制
               type:           yaml
代码语言:txt
复制
               dir:            %kernel.root_dir%/config/doctrine
代码语言:txt
复制
               prefix:        App
代码语言:txt
复制
               alias:          App
代码语言:txt
复制
               attributes:
代码语言:txt
复制
                   metadata:
代码语言:txt
复制
                       namespace: App
代码语言:txt
复制
                       dir:   %kernel.root_dir%/config/doctrine
代码语言:txt
复制
                       prefix: App
代码语言:txt
复制
                       alias: App
代码语言:txt
复制
  1. config/packages/doctrine.yaml文件中添加具有空间点的YAML实体:
代码语言:yaml
复制

App:

代码语言:txt
复制
   entity_1:
代码语言:txt
复制
       name:      MyEntity1
代码语言:txt
复制
       type:      entity
代码语言:txt
复制
       query_cache:  true
代码语言:txt
复制
       metadata:
代码语言:txt
复制
           namespace: MyApp\Entity
代码语言:txt
复制
           dir:       %kernel.root_dir%/config/doctrine
代码语言:txt
复制
           prefix:   MyApp
代码语言:txt
复制
           alias:   MyApp\Entity
代码语言:txt
复制
       fields:
代码语言:txt
复制
           id:
代码语言:txt
复制
               type:     integer
代码语言:txt
复制
               id:      true
代码语言:txt
复制
               column:  id
代码语言:txt
复制
               generator:
代码语言:txt
复制
                   strategy:   IDENTITY
代码语言:txt
复制
           name:
代码语言:txt
复制
               type:     string
代码语言:txt
复制
               length:   ~
代码语言:txt
复制
               nullable: true
代码语言:txt
复制
               column:  name
代码语言:txt
复制
           point:
代码语言:txt
复制
               type:     point
代码语言:txt
复制
               nullable: true
代码语言:txt
复制
               column:  point
代码语言:txt
复制
       lifecycleCallbacks:
代码语言:txt
复制
           prePersist:  ~
代码语言:txt
复制
           preUpdate:  ~
代码语言:txt
复制
  1. 在实体类中使用setMetadata()方法设置YAML配置文件:
代码语言:php
复制

<?php

// src/Entity/MyEntity.php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**

代码语言:txt
复制
* @ORM\Entity(repositoryClass="App\Repository\MyEntityRepository")
* @ORM\Table(name="my_entities")
*/   class MyEntity
   {
       /**
        
代码语言:txt
复制
   /**
代码语言:txt
复制
    * @ORM\Column(type="string")
    */
   private $name;
代码语言:txt
复制
   /**
代码语言:txt
复制
    * @ORM\Column(type="point")
    */
   private $point;
代码语言:txt
复制
   public function getId(): ?int
代码语言:txt
复制
   {
代码语言:txt
复制
       return $this->id;
代码语言:txt
复制
   }
代码语言:txt
复制
   public function getName(): ?string
代码语言:txt
复制
   {
代码语言:txt
复制
       return $this->name;
代码语言:txt
复制
   }
代码语言:txt
复制
   public function setName(string $name): self
代码语言:txt
复制
   {
代码语言:txt
复制
       $this->name = $name;
代码语言:txt
复制
       return $this;
代码语言:txt
复制
   }
代码语言:txt
复制
   public function getPoint(): ?Point
代码语言:txt
复制
   {
代码语言:txt
复制
       return $this->point;
代码语言:txt
复制
   }
代码语言:txt
复制
   public function setPoint(Point $point): self
代码语言:txt
复制
   {
代码语言:txt
复制
       $this->point = $point;
代码语言:txt
复制
       return $this;
代码语言:txt
复制
   }

}

代码语言:txt
复制

数据库抽象层

  1. 创建Doctrine\ORM\Configuration实例,并设置配置:
代码语言:php
复制

<?php

// config/autoload/doctrine.php

return new Doctrine\ORM\Configuration(

代码语言:txt
复制
   new Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain([
代码语言:txt
复制
       'orm_default' => new Doctrine\ORM\Mapping\Driver\YamlDriver(
代码语言:txt
复制
           __DIR__ . '/config/doctrine/orm.yaml'
代码语言:txt
复制
       ),
代码语言:txt
复制
   ])

);

代码语言:txt
复制
  1. 创建doctrine.php配置文件:
代码语言:php
复制

<?php

return [

代码语言:txt
复制
   'doctrine' => [
代码语言:txt
复制
       'orm' => [
代码语言:txt
复制
           'mappings' => [
代码语言:txt
复制
               'App' => 'orm_default',
代码语言:txt
复制
           ],
代码语言:txt
复制
       ],
代码语言:txt
复制
   ],

];

代码语言:txt
复制
  1. 在实体类中使用setMetadata()方法设置数据库抽象层:
代码语言:php
复制

<?php

// src/Entity/MyEntity.php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**

代码语言:txt
复制
* @ORM\Entity(repositoryClass="App\Repository\MyEntityRepository")
* @ORM\Table(name="my_entities")
*/   class MyEntity
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Symfony2和Redis正名,基于PHP的10亿请求周网站打造

【编者按】如果你还在Symfony2和Redis使用存在这样的错误观念:不能使用Redis作为主要存储;Symfony2的功能很多,以至于它的运行很慢,那么不妨看向Octivi的高请求网站打造。...对于低层次的Symfony2性能优化实践,我们写了专门的文章——掌握Symfony2性能系列——Internals 和Doctrine 首先是关于所描述应用的一些数据。...与Redis设置不同,MySQL运行在主配置上,除高可用性外,这还提供了更好的写性能(Redis这不是什么问题,因为我们不会耗尽性能特性。) ?...我们使用Doctrine DBAL代替,Doctrine DBAL特征如下: 查询生成器 预处理语句 使用PredisBundle和Doctrine Bundle也允许我们大量使用分析工具的时候监控弱查询...总结 多亏Symfony2,这种设置保持高性能和高可用性的同时保持了友善的开发环境——可维持,稳定。实际上这是用作电商网站的关键子系统的关键业务需求。

4.3K50

如何在Ubuntu 18.04上使用LEMP将Symfony 4应用程序部署到生产中

本教程,您将在Ubuntu 18.04上使用LEMP堆栈(Nginx,MySQL和PHP)将现有的标准Symfony 4应用程序部署到生产中,这将帮助您开始配置服务器和框架的结构。...第2步 - 设置演示应用程序 为了简化本教程,您将部署使用Symfony构建的博客应用程序。此应用程序将允许经过身份验证的用户创建博客帖子并将其存储在数据库。...Doctrine为您提供了有用的工具,使您可以轻松灵活地与数据库进行交互。 您现在可以使用Doctrine使用克隆的Github应用程序的表来更新数据库。...您最喜爱的浏览器访问http://your_server_ip 下图是您应该在服务器的IP地址上看到的Symfony博客应用程序的屏幕截图: 结论 Symfony是一个功能丰富的PHP框架,其架构使...部署典型Symfony应用程序的步骤各不相同,具体取决于应用程序的设置,复杂性和要求。 本教程,您在运行LEMP的Ubuntu 18.04服务器上手动将Symfony 4应用程序部署到生产环境

4.8K113

如何在Ubuntu 14.04上将Symfony应用程序部署到生产环境

为了简单起见,我们将使用使用Symfony构建的示例待办事项应用程序。您可以GitHub上找到它的源代码。 第一步 - 安装服务器依赖项 在此步骤,我们将安装服务器依赖项。...第四步 - 修复文件夹权限 应用程序文件现在位于/var/www/todo-symfony ,我们的系统用户所拥有的目录本教程,我们以sammy为例)。...首先,我们需要允许用户使用www-data访问应用程序文件夹的文件。整个目录为此用户授予读取+执行权限(rX)。...根据从应用程序实体获得的元数据信息,这将在配置的数据库创建所有应用程序表。...本教程,我们看到了Ubuntu 14.04服务器上手动部署基本Symfony应用程序到生产时应采取的具体步骤。 想要了解更多关于Linux的开源信息教程,请前往腾讯云+社区学习更多知识。

12.7K20

PowerDesigner设计物理模型2——约束

PD创建唯一约束的操作,以教室表来说,RoomID是主键,必然是唯一的,RoomName如果我们也要去必须是唯一的,那么具体操作如下: PD的模型设计面板,双击“教室”表,打开属性窗口,切换到"...CHECK约束 CHECK分为列约束和表约束,列约束是只对表的某一个列进行的约束,可以列的属性中进行设置,而表约束是对多个列进行的约束,需要在表的属性中进行设置(其实列约束也可以表约束设置)。...切换到表属性的Check选项卡,默认约束内容的“%RULES%”就是用来表示Rule设置的内容,如果我们还有一些其他的CHECK约束内容,不希望Rule设置,而是Check选项卡设置,那么只需要删除...') ) go 可以看到,根据Rule生成的CHECK约束与Check选项卡设置的约束将分别创建一个约束,相互并不影响。...至此我们所有的约束PD的设置都介绍完了,下一篇将介绍视图、存储过程等数据库对象。

95920

2011年最热门的PHP开源项目回顾

Symfony 2 及其组件 Symfony 2是一个完备的全栈HTTP框架,它可以以任何需要的方式来满足HTTP请求,而不仅仅是一个严格的MVC方法。...Symfony 2为定义模块提供了一个Bundle API,你可以应用程序之间进行模块移植。 此外,Symfony 2 有21个独立的组件,每个组件可当作一个独立的库。...2. Doctrine 和 NoSQL 映射器 Doctrine 2是成熟的ORM(对象关系映射),基于数据库抽像层,可以通过PHP对象轻松访问所有的数据库。...Moodle 我对电子学习领域的研究,无所不在一个工具就是Moodle(Modular Object-Oriented Dynamic Learning En vironment,模块化面向对象的动态学习环境...这些工具越来越接近OOP(面向对象编程):Joomla有像类集合一样的所有libraries,而Drupal有像类一样的大量测试实例,以及几十个不同的模块,甚至Drupal8里也有Symfony2组件

1.7K30

TensorFlow 2实现完全卷积网络(FCN)

本教程,将执行以下步骤: 使用KerasTensorFlow构建完全卷积网络(FCN) 下载并拆分样本数据集 Keras创建生成器以加载和处理内存的一批数据 训练具有可变批次尺寸的网络 使用...但是任何尺寸大于最小输入尺寸的输入都需要汇总以满足步骤4的条件。了解如何使用我们的主要成分来做到这一。...但是,1x1卷积之后,最后一层(Softmax激活层)的输入必须具有固定的长度(类数)。 主要成分:GlobalMaxPooling2D() / GlobalAveragePooling2D()。...第三不能一概而论,因为它取决于诸如数据集中的图像数量,使用的数据扩充,模型初始化等因素。但是这些是实验的观察结果。...传统的图像分类器,将图像调整为给定尺寸,通过转换为numpy数组或张量将其打包成批,然后将这批数据通过模型进行正向传播。整个批次评估指标(损失,准确性等)。根据这些指标计算要反向传播的梯度。

5.1K31

微系列:2Centos,搭建Redis集群

redis/ 安装gcc, yum install gcc 进入src目录,执行 make MALLOC=libc 进行编译 生成的redis-server和redis-cli为可执行文件 二、修改配置 Redis...源码目录,有配置文件redis.conf,打开并修改如下配置 # 端口 port 5800 # 绑定ip bind xxx.xxx.xxx.xxx # 后台运行 daemonize yes # 进程号文件位置...启动集群后自动生成 cluster-config-file nodes-5800.conf 三、搭建集群 新建文件夹5800,将redis-server、redis-cli、redis.conf拷贝到新建的文件夹...由于搭建集群时,Redis会自动生成集群配置文件,由cluster-config-file参数指定,所以,重启Redis时,会自动加入集群 为了重启电脑Redis可以正常启动,我们需要设置Redis开机启动, /.../var/run/redis_${REDISPORT2}.pid CONF1="/etc/redis/${REDISPORT1}.conf" CONF2="/etc/redis/${REDISPORT2

40510

HTTP2管理CSS和JS

HTTP/2的时代里,在你的网站里发布CSS和JS跟以前大不相同了,以下是我实践的一份建议。 我们听说HTTP/2已经很多年了,我们也写过一些相关的博客。但是我们并没有怎么使用它。...直到现在,一些最近的项目里,我把使用HTTP/2设定为一个目标,并且想出怎样最好的使用多路复用特性。...这篇文章并不是来说明你为什么需要使用HTTP/2,而是讨论我是怎么在这种规范的转变管理CSS和JS的。 拆分CSS 这是我们多年以来的最佳实践的反例。...modules 文件夹 我们的HTTP/2设置这是最重要的文件夹。当我拆分样式到对应的模块,这个文件夹会包含非常非常多的文件。所以一个子文件夹就是一个模块: ?...接着,使用Blendid 配置,我只需要做一微调就可以正常工作了。

3.4K30

WSL 2 基于 Docker 编排 LNMP 运行环境

WSL 可以安装 Docker,但是由于 WSL 没有使用真正的 Linux 内核,而是模拟,所以有诸多权限限制,而在 Windows 10 最新版(version 2004)提供的 WSL 2...升级 Ubuntu 到 WSL 2 发行版 具备以上条件的基础上需要将 WSL 升级到 WSL 2(如果已经升级到 WSL 2 则跳过此步骤),你可以 Windows 官方提供的更新 WSL 2 Linux... Windows 宿主机打开已运行的 Docker Desktop 设置界面,通用(General)选项勾选「Use the WSL 2 based engine」: ?... Ubuntu 运行 Docker 命令 Windows PowerShell 运行 wsl 启动默认的 Ubuntu 虚拟机,就可以运行 docker 相关命令了,表示 Docker 已经成功集成到... Windows 宿主机打开 hosts,配置一个 blog.test 虚拟域名: 127.0.0.1 blog.test 就可以浏览器通过 http://blog.test 访问部署 WSL

6.8K10
领券