小编Sve*_*ven的帖子

从Gemfile中删除gem后该怎么办?

我从Gemfile中删除了一个gem'mygem',但刚才我意识到它仍然安装了.

那么如何告诉bundler重新扫描Gemfile并更新Gemfile.lock,而不更新每个gem?

来自php,这就是我习惯的方式:composer update nothing.捆绑器有相应的东西吗?

ruby ruby-on-rails bundler

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

PHPUnit:测试对象数组

刚刚跳进PHPUnit,一直在阅读有关它的内容,尝试一些例子,以便为我未来的项目编写测试.

我需要测试这个场景,我有Student Class,它是这样的:

class Students
{
    public function getStudents($studentName, $studentId)
    {       
        $students= array();

        //Instantiating OldStudent Class from Old Project
        $oldStudents = \OldStudents::getStudentByName($studentName, $studentId);

        //Create a Student Object for every OldStudent found on Old Project and set
        //values
        foreach ($oldStudents as $oldStudent)
        {            
            $student = new \Entity\Student();

            //Set Student ID
            $student->setStudentId($oldStudent->getStudentID());

            //Set Student Name
            $student->setStudentName($oldStudent->getStudentName());    
           //.....other setters for student data, irrelevant for this example 

            $students[] = $student;            
        }

        return $students;
    }
}
Run Code Online (Sandbox Code Playgroud)

和学生班

Class Student
{
    protected $studentId;
    protected $studentName;

    public …
Run Code Online (Sandbox Code Playgroud)

php phpunit unit-testing

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

在通过电子邮件发送之前,是否需要清理用户输入的数据

我有一个表单,我接受用户的姓名,电子邮件和消息.我对名称,电子邮件和消息进行验证,然后使用该mail()功能发送它.

如果我输入了$name,$email并且$message在数据库中,我将转义此数据以进行SQL注入; 或者,如果我在网页上回应它,我会使用htmlspecialchars().

当我通过电子邮件发送此数据时,我该怎么办?我知道我不必担心SQL注入,但是XSS呢?我也应该使用htmlspecialchars()这三个变量吗?

我这样发邮件:

mail('admin@mywebsite.com', 'Contact From: '. $name, "$message", 'From: '. $email);
Run Code Online (Sandbox Code Playgroud)

我读过有关电子邮件注入的内容,但我无法理解.

请让我知道这件事.

php security email

12
推荐指数
1
解决办法
2814
查看次数

从编辑器中排除包更新

每当我尝试使用composer "composer require packagename/package"或者使用composer添加新包时 "composer.phar update",我都会更新所有已安装的包.作曲家有没有选择排除一些我不需要更新的包?

composer-php

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

特定文件的mod_rewrite异常

我的页面没有重定向,因为我的.htaccess文件设置为:

RewriteEngine on  
RewriteCond $1 !^(index\.php|resources|robots\.txt)  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^(.*)$ index.php/$1 [L,QSA]   
Run Code Online (Sandbox Code Playgroud)

我使用这个设置为我的MVC框架,所以我得到网址, /controller/method/argument但是当我重定向到/forum/login.php它切换到/ forum /.

如何将此作为例外添加,以便我能够重定向到 /forum/login.php

我发现我的/ forum /目录中的另一个.htaccess也可能导致问题?

# BEGIN PunBB

<IfModule mod_rewrite.c>
    # MultiViews interfers with proper rewriting
    Options -MultiViews

    RewriteEngine On

    # Uncomment and properly set the RewriteBase if the rewrite rules are not working properly
    #RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . rewrite.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess

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

Symfony2:禁用Twig缓存

我正在尝试在prod模式下禁用twig缓存,或者强制它重新编译我的视图.

我正在使用KnapLaps SnappyBundle生成一些PDF(DomPDF出现同样的问题),我有动态内容来渲染.

在开发模式下,我可以修改一些文本,甚至一些css属性,这些更改立即生效.

但是在prod模式下,我需要缓存:clear,或者rm -rf app/cache/prod/twig/*来查看更改.

我在我的config.yml中为Twig部分尝试了以下选项(不是在同一时间)

cache: "/dev/null"
cache: false
auto-reload: ~
Run Code Online (Sandbox Code Playgroud)

在生成和重新编写我的pdf时,我还尝试了一些带标题的东西:

$html = $this->renderView("xxxxPdfBundle:Pdf:test.html.twig", array("foo" => $bar));
return new Response(
    $this->get('knp_snappy.pdf')->getOutputFromHtml($html),
    200,
    array(
        'Cache-Control'         => 'no-cache, must-revalidate, post-check=0, pre-check=0',
        'Content-Type'          => 'application/pdf',
        'Content-Disposition'   => 'attachment; filename='.$file
    )
);
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何强制twig重新编译或不使用app/cache,因为显然pdf内容在生产时将是动态的.

评论中的信息更新:

我发现即使动态模板变量也没有更新,因此相同的PDF在生产中反复生成,但在开发中却没有.

再次清除所有缓存后,该问题已修复:现在使用动态内容生成PDF.

仍然存在一个问题:如果,当我的网站投入生产时,我决定改变pdf模板中的CSS样式?CSS不是模板变量,我不能强迫人们清空它们的缓存:/

php pdf caching symfony twig

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

array_multisort具有自然排序

是否可以使用PHP中的自然排序按多列对多维数组进行排序?这是一个例子.假设我有一个2D数组,例如,

$array[1]['Name'] = 'John';
$array[1]['Age'] = '20';
$array[1]['Code'] = 'ABC 12';

$array[2]['Name'] = 'John';
$array[2]['Age'] = '21';
$array[2]['Code'] = 'ABC 1';

$array[3]['Name'] = 'Mary';
$array[3]['Age'] = '20';
$array[3]['Code'] = 'ABC 10';
Run Code Online (Sandbox Code Playgroud)

我想按名称(ASC),然后按年龄(DESC)和代码(ASC)对这个数组进行排序,所有都将自然地排序.基本上这将是自然排序的array_multisort.

我在网上找到了很多关于这个主题的解决方案.不幸的是,它们只支持按一列排序,而不是多列排序.

php arrays sorting natural-sort

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

Laravel 5中S3 flysystem适配器的路径不正确

将文件上传到S3存储桶时,我遇到了Laravel 5文件系统的问题.运行到文件系统的行是:

Storage::disk('s3')->put($slug, $img);
Run Code Online (Sandbox Code Playgroud)

它的工作原理应该是:

Storage::disk('local')->put($slug, $img);
Run Code Online (Sandbox Code Playgroud)

但是当我将磁盘更改为S3时,它会抛出以下错误:

Class 'League\Flysystem\AwsS3v3\AwsS3Adapter' not found
Run Code Online (Sandbox Code Playgroud)

根据L5文档,我在composer.json中有以下要求

"league/flysystem-aws-s3-v2": "~1.0"
Run Code Online (Sandbox Code Playgroud)

其中安装了联盟的aws flysystem适配器:

League\flysystem-aws-s3-v2\
Run Code Online (Sandbox Code Playgroud)

我已经尝试将filess vendor文件夹中的fileSystemManager.php中的路径更新为aws flysystem安装路径,但它仍然无效.我似乎无法找到任何经历过这种行为的人.

一双新鲜的眼睛或知识渊博的头脑,他们可能比我更了解Laravel.我真的无法解决这个问题.

UPDATE

我做了一个全新安装的aws flysystem而不是我得到以下内容:

ErrorException in Util.php line 250:
fstat() expects parameter 1 to be resource, object given
Run Code Online (Sandbox Code Playgroud)

php amazon-s3 laravel-5

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

如何为php 5.2安装composer?

我想为php 5.2下载遗留版本的composer.

如何为php 5.2安装composer?

php composer-php

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

Composer 从 bitbucket 创建项目

我的 bitbucket 存储库中有一个项目,我是 Composer 的新手

在这个项目中,我有我所有的要求和设置的 composer.json。

我正在尝试直接从我的 bitbucket 存储库安装我的项目,我想做的事情与我们可以用 github 项目做的事情相同。

例如:

composer create-project thelia/thelia-project path/ 2.2.0
Run Code Online (Sandbox Code Playgroud)

但是如果我执行这个命令:

composer create-project vendor/name .--repository-url=https://vendor@bitbucket.org/vendor/name.git
Run Code Online (Sandbox Code Playgroud)

结果是:

https://vendor@bitbucket.org/vendor/name.git/packages.json could not be downloaded
Run Code Online (Sandbox Code Playgroud)

我已经在 bitbucket 上插入了我的 ssh 密钥以进行部署

我提交了一个 packages.json 到 name.git 存储库,但它不起作用。

这个命令显然是错误的:

composer create-project vendor/name . --repository-url=git@bitbucket.org:vendor/name.git
Run Code Online (Sandbox Code Playgroud)

结果是:

Invalid repository url given. Has to be a .json file or an http url
Run Code Online (Sandbox Code Playgroud)

我在某处读到 composer create-project 充当 git clone 和 composer install ,但我无法让它以正确的方式工作。

怎么了?我在这里找到了很多答案,但我无法让它们起作用。

git bitbucket composer-php

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