小编Nic*_*tel的帖子

如何在composer中获取所有已安装软件包的列表以及版本?

我一直在我的本地机器上使用Symfony 2.1进行项目.我已将其上传到我的服务器,但是当我尝试使用Composer安装供应商软件包时,我遇到了很多依赖性错误.据推测,这与最新版本的Symfony刚刚发布和我的composer.json文件没有指定确切的版本号有关.

有什么办法可以快速显示本地机器上所有内容的版本号吗?

这是我的composer.json文件(几天前工作正常):

{
    "name": "symfony/framework-standard-edition",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.1.*",
        "doctrine/orm": ">=2.2.3,<2.4-dev",
        "doctrine/doctrine-bundle": "1.0.*",
        "twig/extensions": "1.0.*",
        "symfony/assetic-bundle": "2.1.*",
        "symfony/swiftmailer-bundle": "2.1.*",
        "symfony/monolog-bundle": "2.1.*",
        "sensio/distribution-bundle": "2.1.*",
        "sensio/framework-extra-bundle": "2.1.*",
        "sensio/generator-bundle": "2.1.*",
        "jms/security-extra-bundle": "1.2.*",
        "jms/di-extra-bundle": "1.1.*",
        "sonata-project/admin-bundle": "*",
        "sonata-project/cache-bundle": "dev-master",
        "sonata-project/doctrine-orm-admin-bundle": "dev-master",
        "stof/doctrine-extensions-bundle": "1.1.x-dev",
        "sonata-project/user-bundle": "dev-master",
        "sonata-project/easy-extends-bundle": "dev-master",
        "friendsofsymfony/user-bundle": "2.0.x-dev",
        "friendsofsymfony/jsrouting-bundle": "*",
        "liip/imagine-bundle": "*",
        "simplethings/form-extra-bundle": "dev-master",
        "antimattr/google-bundle": "dev-master",
        "doctrine/doctrine-fixtures-bundle": "dev-master",
        "genemu/form-bundle": "2.1.*",
        "behat/behat":                  "2.4.*@stable",
        "behat/mink": …
Run Code Online (Sandbox Code Playgroud)

composer-php

227
推荐指数
6
解决办法
14万
查看次数

Running Composer返回:"无法打开输入文件:composer.phar"

我是symfony2的新手并且正在阅读symblog.在尝试使用数据夹具的第三章中,我尝试了以下命令:

php composer.phar update

但是我得到了错误:

Could not open input file: composer.phar

所以我用Google搜索了一下并试了一下

php composer.phar install
Run Code Online (Sandbox Code Playgroud)

但仍然得到同样的错误.所以请指导如何处理这个作曲家在symfony2中使用wamp安装新的扩展或数据包等捆绑包.

php wamp symfony composer-php

198
推荐指数
10
解决办法
31万
查看次数

如何将当前分支合并到另一个分支

我有两个分支,master和dev.我一直在使用dev,只有在批准生产使用后才能将代码检入主分支.当我这样做时,我必须做以下事情:

git checkout master
git merge dev
git checkout dev
Run Code Online (Sandbox Code Playgroud)

这非常冗长,而且由于我经常这样做,我想尽量减少它.有没有一个git命令可以用来从我当前的分支dev合并到另一个分支master而不必先检查master分支?有点像:

git merge dev to master
Run Code Online (Sandbox Code Playgroud)

会很棒的.我查看了git文档并没有看到任何内容.

git version-control

178
推荐指数
6
解决办法
8万
查看次数

如何在Doctrine中使用findBy()来订购结果

findBy()在Doctrine存储库上使用该方法:

$entities = $repository->findBy(array('type'=> 'C12'));
Run Code Online (Sandbox Code Playgroud)

我该如何订购结果?

php doctrine-orm

137
推荐指数
3
解决办法
16万
查看次数

使用Doctrine 2将实体保存到REST API而不是DB

这与我的另一个问题有关:使用REST API保持实体.

对于Symfony2中的项目,我需要能够使用远程(第三方)RESTful API来持久化实体.我还希望能够使用该API中的数据检索实体.

换句话说,我的对象保存在第三方数据库中.它们不会保存在我自己的数据库中.每当我需要保存数据或查找数据时,我都会使用他们的REST API.

我被指向了几个库,包括一个由Doctrine本身制作的库.但是,它们都没有为我提供我正在寻找的东西.由Doctrine制作的那个是最好的选择,但是使用Active Record模式并没有提供所有甜蜜的Doctrine 2.不要误会我的意思,我一直在使用Active Record实现,但我现在已经爱上了Doctrine的Data Mapper模式.

理想情况下,我希望能够使用Doctrine的ORM,只需用使用API​​调用保存实体的逻辑替换特定于数据库的部分.(当然,使用相同的API检索它们).这样我可以使用大致相同的语法保存我的实体:

// current way to save $entity in database:
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();

// desired way to save $entity using REST API:
// (just an example, it doesn't have to be exactly like this)
$em = $this->getDoctrine()->getManager('rest');
$em->persist($entity);
$em->flush();
Run Code Online (Sandbox Code Playgroud)

请注意,我不是要尝试构建自己的API,而只是尝试与第三方API进行通信以保存我的实体.我对Doctrine很新,但到目前为止我还是喜欢它.我真的很喜欢从实体中分离持久性逻辑的想法,但到目前为止我无法找到如何使用API​​来保存它们.

Symfony的文档中有一篇文章,描述了如何与多个实体经理合作.我正在寻找类似于此的解决方案,但是使用实体管理器可以使用REST而不是数据库.

我一直试图自己调整Doctrine的ORM,但我最终只重写了一半代码,因为它(似乎)与数据库特定的逻辑紧密耦合.当然,我可能会做一些愚蠢的事情.

所以我的问题是,有没有办法用自定义的方式替换/覆盖Doctrine ORM的数据库特定部分?没有重写很多应该对所有持久化方法都很常见的事情?以前做过吗?或者它是不可能的,因为Doctrine旨在与数据库一起使用,并且不够灵活,不能用于其他用途?

我自己的进步

CakePHP似乎可以通过让您定义自定义DataSource来实现此目的.这样你可以使用SQL数据库保存模型,但也可以使用API​​,会话等.我想大致相同,但使用Doctrine代替CakePHP.

更新1

实际的数据库查询似乎是由Doctrine\ORM\Persisters\BasicEntityPersister执行的 .还有其他几个xxxPersister类,用于处理不同类型的继承.有可能用我们自己的类替换xxxPersister类,因此我们可以用REST …

php rest persistence symfony doctrine-orm

26
推荐指数
3
解决办法
8616
查看次数

如何安装Twig的Intl扩展

国际扩展是枝条的延伸,增加了的localizeddate,localizednumberlocalizedcurrency过滤器.如何安装和设置扩展程序,以便在Twig模板中使用这些过滤器?

php intl twig twig-extension

25
推荐指数
1
解决办法
2万
查看次数

如何在Sonata Media Bundle中实现多对多关系

我试图将SonataMediaBundle与另一个实体联系起来:与ManyToMany有关系的产品.

架构和关系很好地创建.

但是,当我编辑或创建新产品时,我尝试添加一个按钮,我可以通过媒体库搜索媒体文件,然后使用按钮上传新文件.

对于OneToMany的关系,可以Admin\ProductAdmin::configureFormFields通过添加以下内容轻松完成:

->add('image', 'sonata_type_model_list', array(
                    'required' => false
                ), array(
                    'link_parameters' => array(
                        'context'  => 'default',
                        'provider' => 'sonata.media.provider.image'
                     )
                ))
Run Code Online (Sandbox Code Playgroud)

因此,我获得了与SonataMediaBundle图库中已使用的相同的3个图标(从库中添加,上传删除)

但关于ManyToMany的关系是不可能的!因为每次我选择媒体时,都会取代之前的媒体.所以我无法选择多种媒体类型.

我想和The Gallery一样使用(galleryHasMedia)

->add('galleryHasMedias', 'sonata_type_collection', array(
            'by_reference' => false
        ), array(
            'edit'     => 'inline',
            'inline'   => 'table',
            'sortable' => 'position',
            'link_parameters' => array('context' => $context)
        ))
Run Code Online (Sandbox Code Playgroud)

但是,它真的很复杂.如何通过ManyToMany关系在另一个实体上选择或上传多个媒体文件?

symfony sonata-admin

19
推荐指数
1
解决办法
9268
查看次数

如何在一段时间不活动后自动关闭用户?

在网上进行了大量搜索后发现什么都没有,我想知道是否有一种简单的方法可以在非活动期后自动注销通过Symfony Security登录的用户.例如,我希望用户在30分钟不活动后退出.

我使用像这样的自定义用户提供程序.

但是在用户登录系统后,会话永不过期.即使他关闭浏览器并在几天后再次打开它,会话仍然有效.

无论如何,以自动方式甚至手动方式注销此用户?我怎样才能做到这一点?

session symfony

18
推荐指数
3
解决办法
3万
查看次数

为什么识别关系中的主键的外键部分?

我试图理解一个概念,而不是修复一段不起作用的代码.

我将采用表单(父表)和表单字段(子表)的一般示例.从逻辑上讲,这将是一种识别关系,因为没有表单就不能存在表单字段.

form和form_field表

这将使我认为,为了将逻辑关系转换为技术关系,NOT NULLform_field表中的form_id字段的简单就足够了.(参见上面屏幕截图的左侧部分.)

但是,当我使用MySQL Workbench添加标识关系时,form_id不仅NOT NULL是主键的一部分,而且也是主键的一部分.(请参阅上面屏幕截图的右侧部分.)当我添加一个非识别关系时,NOT NULL仍然按逻辑方式应用它实际上也是一个识别关系.

我想这让我感到困惑,以及直到现在我总是简单地使用id字段作为主键的事实.

所以我理解识别与非识别关系的逻辑概念,但我不理解技术部分.

为什么它,正如这个答案所说的那样,"正确"的方式使外键成为孩子主键的一部分?

这些复合主键有什么好处?

sql database-design foreign-keys primary-key

16
推荐指数
1
解决办法
5656
查看次数

MySQL中的MINUS运算符?

我有一些表格,我收到电子邮件.而且我不想在桌面上收到电子邮件tbl_unsubscribe.我写的查询如下:

SELECT cand_email FROM tbl_cand_data
UNION
SELECT emp_email FROM tbl_emp_data
UNION
SELECT email FROM tbl_uptade_list
UNION
SELECT feed_email FROM tbl_feedback
UNION
SELECT admin_email FROM tbl_admin_emails    
Run Code Online (Sandbox Code Playgroud)

但我收到语法错误.是MINUS运营商无效为MySQL?

php mysql

15
推荐指数
2
解决办法
3万
查看次数