symfony学习
Zach-vip
学无止境!!!
展开
-
【Symfony2官方文档翻译】 phpunit
无论何时,你只要编写一行新的代码,你就有可能引入新的Bug。你应该使用自动测试,该教程将向你显示如何为你的应用程序编写单元测试和功能测试。测试框架Symfony2测试很大程序上依赖PHPUnit,它的最佳实践,和一些约定。这部分并不是PHPUnit本身的文档,但如果你还是不能理解的话,你可以阅读它优秀的文档 。Symfony2使用PHPUnit 3.5.11或以上版本。转载 2016-01-26 16:17:20 · 792 阅读 · 0 评论 -
mongodb中uuid和本身object id哪个性能会更好?
mongodb本身的id 生成的时候 是有策略的 缓存了一大部分id 能确保唯一性 而且效率高 ,查询效率也高。用uuid 生成的 ,每次都要生成一次。这边生成一次了, 插入mongodb中。 mongodb还得查一下 这个id 在mongodb中有没有, 会牺牲性能。 如果你想用自己的uuid 还不如再增加一列 来代表你的uuid 。 这样至少mongodb插入的性能会提升,增加了一列 也原创 2016-03-10 10:16:00 · 6443 阅读 · 0 评论 -
深入浅出Symfony2 - 结合MongoDB开发LBS应用
简介随着近几年各类移动终端的迅速普及,基于地理位置的服务(LBS)和相关应用也越来越多,而支撑这些应用的最基础技术之一,就是基于地理位置信息的处理。我所在的项目也正从事相关系统的开发,我们使用的是Symfony2+Doctrine2 ODM+MongoDB的组合。我们将这些技术要点整理成文,希望能够通过本文的介绍和案例,详细解释如何使用MongoDB进行地理位置信息的查询和处理。在转载 2016-03-10 10:46:43 · 961 阅读 · 0 评论 -
How to Use Access Control Lists (ACLs)(类适于RBAC)
In complex applications, you will often face the problem that access decisions cannot only be based on the person (Token) who is requesting access, but also involve a domain object that access is be翻译 2016-03-10 11:04:30 · 461 阅读 · 0 评论 -
支付宝双功能接口使用
最近公司有个项目,让我研究支付宝的接口。尽管支付宝官网上提供了相对全面的教程及文档,并提供在线技术支持,但是最初还是进入了一个误区,总觉得应该记载下来。因为支付宝并不提供测试账号,所以必须申请,而最初我们只能使用个人账号进行申请,由于是最初是想做虚拟交易,查了官方资料推荐的方式就是使用即时到帐了,但是由于我们是个人,而且之前也没有进行过相关的申请及运营,我就理所当然的以为个人账号只能申请担保交易接转载 2016-03-10 15:19:08 · 2425 阅读 · 0 评论 -
symfony2 EventDispatcher组件使用
简介: 面向对象编程已经在确保代码的可扩展性方面走过了很长一段路。它是通过创建一些责任明确的类,让它们之间变得更加灵活,开发者可以通过继承这些类创建子类,来改变它们的行为。但是如果想将某个开发者的改变跟其它已经编写了自己子类的开发者共享,这种面向对象的继承就不再那么有用了。 举一个现实的实例,你想为你的项目提供一个插件系统。一个能够被添加到方法的插件,或者在转载 2016-02-26 10:10:12 · 1044 阅读 · 0 评论 -
Doctrine 2 ORM 事务处理
事务划界“事务划界”就是定义你的事务边界的。正确地进行事务划界非常重要,如果做的不好就会影响你的应用性能。许多数据库以及数据库抽象层(比如PDO)默认工作在自动提交(auto-commit)模式下,该模式下每条SQL语句都被包裹在一个单独的小事务中。所以如果你没有主动进行事务控制,很快就会造成应用的性能下降,因为事务的开销可不便宜哦。在绝大多数情况下,Doctrine 2都为你做了翻译 2016-02-28 22:50:27 · 1533 阅读 · 0 评论 -
symfony2 中 非yml的动态路由
控制器namespace SystemBundle\Controller;use AppBundle\Controller\AjaxController;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\Request;use Sensio\Bundle\Fram原创 2016-04-12 10:42:31 · 454 阅读 · 0 评论 -
symfony2中的经典查询
这是symfony2中的连表查询$sql = 'SELECT g FROM AppBundle:Goods g, AppBundle:GoodsRelated gr Where g.id = gr.relatedGoodsId AND g.status = :status AND gr.goodsId原创 2016-04-15 18:39:46 · 2275 阅读 · 0 评论 -
symfony2中一维码和二维码使用
底层service代码namespace AppBundle\Service;use AppBundle\Exception\BaseException;use BG\BarcodeBundle\Util\Base1DBarcode as barCode;use BG\BarcodeBundle\Util\Base2DBarcode as matrixCode;use Endroi原创 2016-04-21 17:48:00 · 748 阅读 · 0 评论 -
数据库和Doctrine
对于任何应用程序来说最为普遍最具挑战性的任务,就是从数据库中读取和持久化数据信息。尽管symfony完整的框架没有默认集成ORM,但是symfony标准版,集成了很多程序,还自带集成了Doctrine这样一个库,主要的目的是给开发者一个强大的工具,让你工作起来更加容易。在本章,你会学会doctrine的基本理念并且能够了解如何轻松使用数据库。Doctrine可以完全脱离symf转载 2016-06-25 15:34:15 · 1966 阅读 · 0 评论 -
mongo模糊查询
$params = array();if (!empty($distributorId)) { $params['distributor.id'] = $distributorId;}if (!empty($serverId)) { $params['server.id'] = $serverId;}$params['type'] = $type;$qb = $this翻译 2016-07-19 14:41:40 · 1328 阅读 · 0 评论 -
symfony2 mongo add index
这样就可以:/** * @MongoDB\Document( * collection="Xxxx", * repositoryClass="AppBundle\Repository\XxxxRepository" * ) * @MongoDB\Index(keys={"name"="asc"}) * @MongoDB\Index(keys={"code原创 2016-09-02 10:37:06 · 329 阅读 · 0 评论 -
symfony的查询总结
1.createQuery的写法$sql = 'SELECT COUNT(DISTINCT(g.goodsId)) FROM AppBundle:GoodsIndex g WHERE g.status = :status';$params = array( 'status' => GoodsIndex::STATUS_NORMAL,);if (!empty($keywords原创 2016-09-19 17:22:35 · 1732 阅读 · 0 评论 -
command 监控
原创 2016-11-11 11:17:18 · 321 阅读 · 0 评论 -
AngularJS的学习--$on、$emit和$broadcast的使用
$emit只能向parent controller传递event与data$broadcast只能向child controller传递event与data$on用于接收event与data例子如下html代码div ng-controller="ParentCtrl"> 父级--> div ng-controller="SelfCtrl"翻译 2016-04-21 12:07:55 · 368 阅读 · 0 评论 -
redis持久化2
redis持久化,顾名思义,就是把内存中的数据保存到硬盘上,以防redis发生意外造成数据丢失。目前有两种方案,RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久化到硬盘上,后者则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用,但是通常会将两者结合使用。按照redis作者的想法,这两个方案最终会在以后的版本中合成一个。一、快照 RDB(1)转载 2016-03-10 00:01:14 · 296 阅读 · 0 评论 -
Redis持久化
概述Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis重启后,所有存储在内存中的数据将会丢失,在很多情况下是无法容忍这样的事情的。所以,我们需要将内存中的数据持久化!典型的需要持久化数据的场景如下:将Redis作为数据库使用;将Redis作为缓存服务器使用,但是缓存miss后会对性能造成很大影响,所有缓存同时失效时会造成服务雪崩,无法响应。转载 2016-03-09 23:58:48 · 291 阅读 · 0 评论 -
symfony2中的EventDispatcher的项目使用
1.创建事件分发对象在一般情况下,一个单一的调度程序被创建,它维护了一个注册的侦听器。当一个事件被发送通过调度器,它通知所有的听众与事件注册:use Symfony\Component\EventDispatcher\EventDispatcher;$dispatcher = new EventDispatcher();2.连接听众 Connecting Listeners要利原创 2016-03-08 10:32:14 · 941 阅读 · 0 评论 -
symfony2 Event Listener(2)
1.symfony有各种事件和钩子可以用来触发应用程序中的自定义行为。这些事件是由httpkernel组件抛出,可以在kernelevents类中实视。2.要监听一个事件并添加您自己的自定义逻辑,您必须创建一个服务,该服务将作为该事件的事件侦听器。在这个事件监听器中,您将创建一个服务,将作为一个异常侦听器,允许您修改应用程序所显示的异常。kernelevents::例外事件只是其中的一个核心事原创 2016-02-04 15:05:47 · 1363 阅读 · 0 评论 -
symfony2 服务容器(Service Container)
1.什么是Service Container?Service Container服务容器(或依赖注入容器)是一个简单的PHP对象管理服务实例(即对象)。例如,假设你有一个简单的PHP类,提供电子邮件。没有服务容器,您必须手动创建对象,只要您需要它:use Acme\HelloBundle\Mailer;$mailer = new Mailer('sendmai原创 2016-02-05 14:07:43 · 2126 阅读 · 0 评论 -
symfony2中service的简单用法
针对一个简单的service的个人写法1.首先需要在Bundle中建一个service文件夹。在文件夹中写一个service的php文件 如 bookService.php2.配置service路由;3.controller的处理4.service的文件书写原创 2016-01-11 19:11:53 · 1878 阅读 · 0 评论 -
symfony2中对异常的处理,个人总结
习惯了之前的出现错误,就立即解决的方式。现在在用symfony的用法,发现原来自己一直错过了一个东西:Exception现在讲讲symfony2中如何处理错误1.首先自己在src/AppBundle下建立了一个Exception的文件夹,BaseException.php原创 2016-01-29 17:32:34 · 3073 阅读 · 0 评论 -
symfony2中有规律的动态路由
比如我现在有3个路由mall_goods_list_by_price_or_sales_or_create_time: path: /goods/list_by_price defaults: {_controller:MallBundle:Goods:listByPrice}mall_goods_list_by_price_or_sal原创 2016-01-14 17:41:54 · 717 阅读 · 0 评论 -
symfony2 外键 OneToMany
1.Entity:Categoryuse Doctrine\Common\Collections\ArrayCollection;class Category{ // ... /** * @ORM\OneToMany(targetEntity="Product", mappedBy="category") */ protec原创 2016-02-03 18:37:59 · 1092 阅读 · 0 评论 -
symfony2中自己写的一个事件监听案例
写这个事件监听的原因:项目中所有的控制器里面的操作,原创 2016-01-12 19:21:26 · 2409 阅读 · 2 评论 -
symfony2中Entity的字段类型以及Entity的操作
1.字段类型: array, simple_array, json_array, object,boolean, integer, smallint, bigint, string, text, datetime, datetimetz,date, time, decimal, float, binary, blob, guid;2.创建一个entity的步骤php app/con原创 2016-02-04 14:42:41 · 1576 阅读 · 0 评论 -
symfony2中运行周期内执行的回调函数
1.类似于tp中的钩子函数。2.用法详解有时,在插入、更新或删除某个实体之前或之后,您需要执行一个动作。这种行为被称为“生命周期”的回调,他们回调方法,你需要执行过程中的一个实体的生命周期的不同阶段(如实体插入,更新,删除等)。如果你使用注释你的元数据,使生命周期回调的开始。如果你使用YAML或XML映射这是没有必要的。1.开头通常写:/** * @ORM\Entity()原创 2016-02-04 14:43:54 · 621 阅读 · 0 评论 -
symfony下使用登陆验证码
之前看过使用sfCaptchaGDPlugin插件的文章。。按照上面的步骤下来。貌似还是不行。这里我使用的是symfony1.4,把我正常情况下的步骤放上来,大家分享一下。1.首先去下载sfCaptchaGDPlugin2.启用插件,要在ProjectConfiguration.class.php里面添加上查看文本打印class Projec转载 2016-03-17 00:25:58 · 1411 阅读 · 0 评论 -
在Symfony2中生成验证码2
编辑 composer.json,在 require 段中加入一行依赖:"gregwar/captcha": "1.*"执行 composer update 安装依赖包然后就可以在控制器里调用该依赖包啦,下面是具体的代码:namespace Site\CommonBundle\Controller;use Sensio\Bundle\FrameworkExtraBundle\Con转载 2016-03-17 00:42:50 · 1734 阅读 · 1 评论 -
symfony2中对于输入时间进行查询,时间的处理。
一、一般情况下:前端输入一个时间,我们一般是先将时间修改成一个时间戳strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳例如:$startTimestamp = strtotime($startDate);$endTimestamp = strtotime($endDate);然后:如果只是时间,为防止别人传的时间是造假,需要将时间都修改成Y-m-原创 2016-03-07 11:52:37 · 1187 阅读 · 0 评论 -
symfony2中mysql和mongodb的增删改查总结
预定义文中用到的变量:$em = $this->getDoctrine()->getEntityManager();$repository = $em->getRepository(‘AcmeStoreBundle:Product’);1.常用的查询$repository->find($id); //获取的是一条数据$repository->fi原创 2016-01-13 19:24:28 · 2429 阅读 · 0 评论 -
symfony2 如何测试与数据库交互的代码
1.如果您的代码与数据库进行交互,例如读取数据或存储数据到它,您需要调整您的测试,以考虑这一考虑。有很多方法可以解决这个问题。在一个单元测试中,您可以创建一个模拟库,并使用它来返回预期的对象。在功能测试中,您可能需要使用预定义的值来准备一个测试数据库,以确保您的测试始终具有相同的数据来工作。2.在单元测试中模拟存储库3.如果你想测试代码,这取决于一个独立的原则,你需要模拟存储库。通常你原创 2016-02-21 23:38:59 · 822 阅读 · 0 评论 -
symfony2项目中的单测实例
/** * 订单收款历史接口测试 * * @author zhangxizhangxi@thinkerx.com> */class PaymentHistoryServiceTest extends WebTestCase{ /** * @param $times * @return array * 构造数据$mockDataArray原创 2016-03-07 14:27:03 · 466 阅读 · 0 评论 -
symfony2中对于注入的进一步理解
1.首先在appBundle里面的services.yml中写服务的名字,class以及要注入的参数 app.redis_service: class: AppBundle\Service\RedisService arguments: ['@snc_redis.data']举个例子我在控制器中可能会写$redis = $this->con原创 2016-02-22 14:35:41 · 1234 阅读 · 0 评论 -
How to use Repository with Doctrine as Service in Symfony
Dependency injection with autowiring is super easy since Symfony 3.3. Yet on my mentoring I still meet service locators. Mostly due to traditional registration of Doctrine repositories. The way out ...转载 2018-07-25 14:56:15 · 555 阅读 · 0 评论