You are here

Symfony2

使用Symfon2开发REST API接口

Submitted by Peniel on Sat, 05/27/2017 - 11:01

头段时间公司网站的手机版本,前端使用React+reduct,后端使用symfony 2.7,这里简短做一下总结。

相关组件(component):

  • 使用symfony的rest版本,symfony-rest-edition (https://github.com/gimler/symfony-rest-edition),使用里面的rest api
  • 用户管理:fosUserBundle,管理用户登陆
  • Oauth: hwi/oauth-bundle,用来实现qq登陆、微博登陆

配置:

需要对rest api的安全,缓存等进行相关设置,详细配置参考官方文档

Undefined

Symfony2 doctrion andWhere orWhere

Submitted by Peniel on Tue, 05/24/2016 - 08:45

当检索很多个orWhere的时候可以这样使用symfony的doctrine语句,doctrine对基础sql进行了封装,sql可以完成的事情,使用doctrine query builder同样可以完成。

 

$qb->andWhere($qb->expr()->orX(

    $qb->expr()->like('table.field', $qb->expr()->literal('%keyword1%')),

    $qb->expr()->like('table.field', $qb->expr()->literal('%keyword2%')),

));

Undefined

Symfony2 & Amazon MWS API 开发小结

Submitted by Peniel on Tue, 07/28/2015 - 11:52

亚马逊提供了PHP的api类库文件,但是经过测试之后发现很不好使用,根据文档里面的提示,最终使用PHP Curl主动发送请求而不是使用amazon提供的php代码。

实现功能:

  1. 产品自动同步
  2. 订单自动同步
  3. 手动导入交易文件,对产品利润按照天/周/月图片展示
  4. 记录产品库存变化历史
  5. 自动抓取制定产品评论用户的信息(email,用户排名)
  6. cronjob 后台定制运行

CURL请求:

这是实现该项目的核心部分,也是话费时间最多的部分。当请求模块封装成功之后,读取相关数据和数据的后期处理就是水到渠成的事情了。

<?php

namespace AppBundle\Services;

use Symfony\Component\DependencyInjection\ContainerInterface as Container;
use Symfony\Component\HttpFoundation\Response;
use AppBundle\Classes\Curl;

Undefined

Symfony2中关于parameter和composer的一些使用细节

Submitted by Peniel on Tue, 06/02/2015 - 15:12

当运行composer update之后会发现parameters.yml文件被重新覆盖了,解决办法是修改parameter.yml.dist文件,把自己手动添加的参数对应的加入进去,例如我添加了两个新的参数mailer_encryption,mailer_port

Undefined

Tags:

Symfony2电子商务项目Sylius扩展——添加用户积分系统

Submitted by Peniel on Tue, 09/23/2014 - 17:38

symfony2注入依赖(Dependency Injection)灵活的架构下,添加额外的积分功能变成添加积分服务并且调用该服务的过程

Undefined

Symfony2电子商务sylius产品加入购物车流程

Submitted by Peniel on Wed, 09/17/2014 - 16:24

概念:

  1. 产品(product):可以添加到购物车的entity,默认使用master variant
  2. 子产品(variant product):属于产品的不同子产品,可以有不同的价格,尺寸等,在加入购物车的时候是将子产品加入购物车。默认子产品是主子产品(master variant)
  3. 主子产品(master variant product):所有的产品都必须有一个master variant, 加入购物车的时候默认是master variant
  4. 购物车(cart):包含若干个购物车物品
  5. 购物车物品(cartItem):对应于子产品,包含额外的属性,比如数量等
  6. 分解器(resolver):通过分解器将用户提交的产品id转换为具体的子产品
  7. 购物车物品事件(CartItemEvent):包含有购物车物品的事件
  8. 事件调度(Event Dispatcher):根据事件(CartItemEvent)出发执行动作
  9. 事件订阅(Event Subscriber):批量注册事件

流程:

Undefined

symfony2 Redis 网站性能优化

Submitted by Peniel on Tue, 09/02/2014 - 19:10

步骤:

    1. 安装Redis并启动该服务 http://redis.io/
    2. 在服务器上安装phpredis https://github.com/nicolasff/phpredis
        安装好php redis扩展后会自动添加Redis类访问Redis服务

    3. 创建syfmony的服务调用redis
    RedisService 类
<?php

/*
 * Redis.php encoding=UTF-8
 *
 *
 * Copyright(c) 
 *
 */

namespace Gospel\Bundle\CoreBundle\Classes;

use Redis;

Undefined

Tags:

Symfony电子商务Sylius Bundle购物车浅析

Submitted by Peniel on Wed, 08/27/2014 - 17:53

添加到购物车:
    使用twig extension函数实现用户添加产品表单:
        src/Sylius/Bundle/WebBundle/Resources/views/Frontend/Product/show.product.html.twig
        {% form = sylius_cart_form({product: product}) %}
        {{ form_widget(form.variant) }}

Undefined

Symfony2 Sylius Oauth QQ 新浪微博自动登陆配置

Submitted by Peniel on Tue, 08/26/2014 - 09:34

使用bundle: HWIOauthBundle

配置app/config/config.yml

hwi_oauth:
    firewall_name: main # 和security.yml 中的firewall 对应
    resource_owners:
        qq:
            type: qq
            client_id: <yourid>
            client_secret: <yourkey>
        sina_weibo:
            type:                sina_weibo
            client_id:           <yourid>
            client_secret:       <yourkey>

Undefined

Symfony电子商务sylius中promotion流程浅析

Submitted by Peniel on Fri, 08/08/2014 - 09:41

在用户生成订单的时候,会触发sylius的一些事件,事件定义文件

src/Sylius/Bundle/CoreBundle/Resources/config/services.xml

触发的事件包括sylius.order.pre_create, sylius.order.pre_update
通过该触发器执行相关的处理,包括处理shipping,处理promotion,处理税等等。

在处理promotion中,里面有不同的adjustment,而每个adjustment有自己的有效条件,通过checker来决定是否生效。然后将order和该adjustment进行关联,在计算order总数的时候会将adjustment一同计算在内。

Order  <->  Adjustments -> adjustment

Undefined

Pages

Subscribe to RSS - Symfony2