小编Nic*_*tel的帖子

如何使用新的目录结构创建新的Symfony项目?

直到几天前,才有可能使用新的(Symfony 3)目录结构创建一个新的Symfony项目.运行时composer create-project symfony/framework-standard-edition path/ "2.5.*",Composer会询问以下问题:

你想使用Symfony 3目录结构吗?[Y/N]

新结构提供了一些改进,例如consoleapp目录移动到bin目录,以及phpunit.xml.distapp目录移动到根目录.缓存和日志目录已移至新var目录.

看一下这个答案(由我编写),以获取完整的更改列表.

但是,全新安装的标准发行版不再提供此选项.似乎问题已于7月16日被删除,因为新的目录结构造成了太多的混乱,特别是对于新用户.在GitHub上也可以看到这个问题.

是否仍然可以使用新的目录结构创建项目?

symfony

14
推荐指数
2
解决办法
5019
查看次数

可捕获的致命错误:传递给UsernamePasswordToken :: __ construct()的参数4必须是一个数组,给定null

登录到我的Symfony应用程序时(使用正确的用户名和密码),我收到以下错误:

ContextErrorException:Catchable Fatal Error:传递给Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken :: __ construct()的参数4必须是一个数组,给定null,在D:\ xampp\htdocs\essweb\vendor\symfony中调用第96行的\ symfony\src\Symfony\Component\Security\Core\Authentication\Provider\UserAuthenticationProvider.php,在D:\ xampp\htdocs\essweb\vendor\symfony\symfony\src\Symfony\Component\Security\Core中定义\ Authentication\Token\UsernamePasswordToken.php第36行

Security.yml

firewalls:
        admin_area:
            pattern:    ^/
            anonymous: ~
            form_login:
                login_path:  /
                check_path:  /login_check
                default_target_path: /user
                failure_path: /
                #username_parameter: username
                #password_parameter: password
                remember_me: true

            remember_me:
                key: "%secret%"
                lifetime: 31536000
                path: /
                domain: ~
                always_remember_me: true
            logout:
                path:   /logout
                target: /  
Run Code Online (Sandbox Code Playgroud)

更新:

登录表格:

<form class="form-signin form-group" action="{{ path('login_check') }}" method="post">
Username: <input type="text" class="form-control" name="_username" placeholder="Username" value="{{ last_username }}" required="required">
Password: <input type="text" class="form-control" name="_password" placeholder="" value="{{ last_username }}" required="required">
<button class="btn …
Run Code Online (Sandbox Code Playgroud)

php login symfony

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

从UploadedFile类访问$ _FILE ['tmp_name']?

如果我打印UploadedFile实例的内容,这就是我得到的

array (
  'opt_image_header' => 
     Symfony\Component\HttpFoundation\File\UploadedFile::__set_state(array(
       'test' => false,
       'originalName' => 'triangle-in-the-mountains.jpg',
       'mimeType' => 'image/jpeg',
       'size' => 463833,
       'error' => 0,
)
Run Code Online (Sandbox Code Playgroud)

这就是我在Controller中获取上传文件的方法.在移动它之前,我应该调整它.

  foreach($request->files as $uploadedFile){

      $ext = '.' . $uploadedFile['opt_image_header']->guessExtension();
      $filename = sha1(uniqid(mt_rand(), true)) . $ext;

      $uploadedFile['opt_image_header']->move($path . '/images/', $filename);

  }
Run Code Online (Sandbox Code Playgroud)

所以在保存之前没有"tmp_name"我需要调整图像大小.

我是否需要直接从$ _FILE数组中读取它?

upload image symfony

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

在Git历史记录中更改电子邮件地址

我已经在git仓库工作了一段时间并做了一些提交.我一直在我的php文件中使用文档块,包括我的私人电子邮件地址,如下所示:

/**
 * Bla bla bla.
 * 
 * @author:      Nic <foo@bar.com>
 */
Run Code Online (Sandbox Code Playgroud)

现在我创建了一个新的电子邮件地址并更新了文档块,用新的地址替换了旧地址.但是这个更改仅适用于我更改文档之后的提交.

如何从git的历史记录中完全删除旧的电子邮件地址并用新地址替换所有实例?

我尝试过使用这个博客文章使用git filter-branch 但没有成功.我得到以下结果:

git filter-branch --tree-filter 'git ls-files -z "*.php" |xargs -0 perl -p -i -e "s#old-email@example.com#new-email@foobar.com#g"' -- --all
Usage: git core\git-filter-branch [--env-filter <command>] [--tree-filter <command>]
        [--index-filter <command>] [--parent-filter <command>]
        [--msg-filter <command>] [--commit-filter <command>]
        [--tag-name-filter <command>] [--subdirectory-filter <directory>]
        [--original <namespace>] [-d <directory>] [-f | --force]
        [<rev-list options>...]
Run Code Online (Sandbox Code Playgroud)

可能是电子邮件地址(@和.)的特殊字符搞乱了正则表达式吗?除此之外我不知道出了什么问题,任何帮助表示赞赏!

git git-filter-branch

7
推荐指数
2
解决办法
1705
查看次数

特拉维斯CI.NetworkingError:Node.js和AWS S3存储桶之间的CERT_UNTRUSTED错误

设置.

我在使用aws-sdk npm模块的Node.js上.我在S3上有一个AWS桶以及相关的访问和密钥.密钥位于我的.travis.yml文件中.我正在尝试从我的Node.js应用程序测试将图像保存到我的S3存储桶.

有趣的是......它已经在特拉维斯工作了很长时间,然后几天前它就停止了这个错误:

  message: 'CERT_UNTRUSTED',
  code: 'NetworkingError',
  region: 'us-east-1',
  hostname: 'chyld-evernode-test.s3.amazonaws.com',
  retryable: true,
  time: Sat Dec 20 2014 18:35:45 GMT+0000 (UTC)
Run Code Online (Sandbox Code Playgroud)

现在,它仍然可以在我的LOCAL盒子上正常工作,并且在部署到HEROKU之后它仍然可以工作.我的猜测恰好发生在特拉维斯身上,导致我的测试失败.

想法?

amazon-s3 amazon-web-services node.js travis-ci

7
推荐指数
1
解决办法
1098
查看次数

尝试使用Windows 7为Symfony2项目转储资产时出现运行时异常

我正在使用Windows平台(请不要嘲笑我).我正在尝试使用运行Windows 7的localmachine中的asseti构建一个Symfony2项目.

现在我不能为了生命中的爱而弄清楚为什么它不会倾倒资产文件.它总是说某种RunTime Exception.我认为这与咖啡箱和节点路径有关.这是设置咖啡箱和节点路径的正确方法吗?

framework:
    [...]


# Twig Configuration
twig:
    [...]

# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: true
    bundles: [...]


    filters:
        sass:
            load_paths: [ "%kernel.root_dir%/../src/xxxxx/WebsiteBundle/Resources/public/vendor/" ]
            compass: true
        coffee:
            bin: C:\Users\xxxxx\AppData\Roaming\npm\coffee
            node: C:\Program Files\nodejs\node
        cssrewrite: ~


# Doctrine Configuration
[...]
Run Code Online (Sandbox Code Playgroud)

php composer.phar 安装工作正常

php app/console asset:install 工作良好

php app/console assetic:dump 给我以下错误:

[RuntimeException的]

无法写入文件C:/ xampp/htdocs/xxxxx/app /../ web/js/3b27a3f_js?key = AIzaSyCk9Cxgv09X9DKar1bcsLAXxlqP3YhF0OI_1.js

我最初的感觉是咖啡箱和节点路径有问题.

以下是我的机器中的位置.

在此输入图像描述

在此输入图像描述

我不知道是怎么回事.我会抛弃任何可能有助于解决这个问题的输出.我觉得这里很无能为力.我正在使用SASS,指南针,咖啡等

windows sass coffeescript symfony assetic

7
推荐指数
1
解决办法
1242
查看次数

GET和POST方法之间的区别?

我是这个论坛的新手,我从今晚开始学习PHP.

我想发一份表格,但我不知道它们之间的区别:

<form action="page2.php" method="GET">
Run Code Online (Sandbox Code Playgroud)

<form action="page2.php" method="POST">
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?

谢谢.

html forms post get http

6
推荐指数
1
解决办法
4万
查看次数

使用REST API保留实体

对于Symfony2中的项目,我需要能够使用外部RESTful API而不是数据库来持久化/检索实体.由于Doctrine将实体映射到数据库表的一行,我认为创建从实体到外部API的映射应该很容易.但是,这对我来说是新的,我似乎无法找到任何关于此的描述/教程.(也许我错过了我的谷歌的正确的话)

我希望有一个类似于Doctrine的解决方案.我宁愿不使用基于ActiveRecord模式的东西,因为我希望持久性逻辑与实体分开.实体不应该知道它是如何持久化的.

我希望能够做类似的事情:

$entity = new Entity();

$em = $this->getREST()->getManager(); // get REST Entity Manager
$em->persist($entity); // save the entity using a POST request
$em->flush();
Run Code Online (Sandbox Code Playgroud)

还有这个:

$em = $this->getREST()->getManager(); // get REST Entity Manager

// retrieve the entity using a GET request
$entity = $em->getRepository('AcmeDemoBundle:Entity')->find($id);
Run Code Online (Sandbox Code Playgroud)

还有这个:

$em = $this->getREST()->getManager(); // get REST Entity Manager

// retrieve all entities using a GET request
$entities = $em->getRepository('AcmeDemoBundle:Entity')->findAll();
Run Code Online (Sandbox Code Playgroud)

换句话说,如果语法几乎与Doctrine相同,那就太好了.

此外,我想在外部文件(例如YAML)中配置映射,而不是在实体中配置注释.(正如我所说,实体不应该知道它们是如何被保留的)

Forgottenbas已经提到了几个解决方案,但它们并不完全满足我的要求,我希望会有更多的解决方案,因为我确信我不是第一个必须解决这个问题的人.

任何人都能指出我正确的方向吗?

php api rest orm persistence

6
推荐指数
1
解决办法
2283
查看次数

将$ _POST数组与数据库进行比较

好吧,我很确定我不是第一个遇到这种情况的人,我只是不知道正确的词来搜索解决方案.考虑以下数据库表(针对此问题进行简化):

数据库表http://www.nth-root.nl/public/images/wolf/cat_attr.png

正如您在图片中看到的,有一个包含产品类别的类别表和一个包含不同属性的属性表.例如:颜色(用于服装),容量(用于mp3播放器)等.

第三个表位于图片的中心,将属性链接到类别.

现在在后端我有一个"编辑类别"页面,其中包含一个用于编辑(或添加)类别的表单.在同一页面上,我想显示下拉列表列表,以便管理哪些属性链接到当前产品类别.

后端http://www.nth-root.nl/public/images/wolf-commerce/edit_category.png

它使用jquery来添加/删除下拉列表.

问题是:如何使用表单的$ _POST数据操作category_attribute表中的数据.

懒惰的解决方案是(并且我过去已经这样做了):
1.删除给定类别
2的category_attribute中的所有当前行.然后将所有选定的属性插入category_attribute

但这并不是非常有效,即使有人只更改了类别的标题,它也会删除并重新添加所有行.

所以我正在寻找一种方法来进行正确的插入,更新和删除:
1.删除$ _POST中没有出现的行(已删除下拉列表)
2.更新已更改的行(另一个选项来自已选择下拉列表)
3.插入新的行(已添加新的下拉列表)

我只是不知道该怎么做或在哪里找到一个好例子.使用某些ajax可能很容易,但我正在寻找一个纯粹的php解决方案,将$ _POST值与数据库中的值进行比较.

如果有人知道一篇解释最佳(也是最有效)解决方案的好文章,请告诉我,我将非常感激.

-edit-
我已经包含了一些图片来澄清我的问题,但是堆栈溢出拒绝包含它们因为我的声誉太低,所以我希望我的问题很清楚,没有图像.

-edit2-现在我有足够的声誉,我添加了图像.

提前致谢,

尼克

php database post

5
推荐指数
1
解决办法
567
查看次数

是否需要 DELETE/PUT http 动词?

我没有看到设计使用 PUT 和 DELETE 来更新和删除数据的 REST API 服务的巨大好处。这两个动词可以通过使用 POST 和唯一的 url 轻松替换。

我看到使用 PUT 和 DELETE 的唯一好处是它减少了 REST API 服务使用的 url 数量,这并不多。我忽略了其他好处吗?

rest http

5
推荐指数
2
解决办法
742
查看次数