我从Gemfile中删除了一个gem'mygem',但刚才我意识到它仍然安装了.
那么如何告诉bundler重新扫描Gemfile并更新Gemfile.lock,而不更新每个gem?
来自php,这就是我习惯的方式:composer update nothing
.捆绑器有相应的东西吗?
刚刚跳进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) 我有一个表单,我接受用户的姓名,电子邮件和消息.我对名称,电子邮件和消息进行验证,然后使用该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)
我读过有关电子邮件注入的内容,但我无法理解.
请让我知道这件事.
每当我尝试使用composer "composer require packagename/package"
或者使用composer添加新包时
"composer.phar update"
,我都会更新所有已安装的包.作曲家有没有选择排除一些我不需要更新的包?
我的页面没有重定向,因为我的.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) 我正在尝试在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中的自然排序按多列对多维数组进行排序?这是一个例子.假设我有一个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.
我在网上找到了很多关于这个主题的解决方案.不幸的是,它们只支持按一列排序,而不是多列排序.
将文件上传到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 5.2下载遗留版本的composer.
如何为php 5.2安装composer?
我的 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 ,但我无法让它以正确的方式工作。
怎么了?我在这里找到了很多答案,但我无法让它们起作用。