小编Pat*_*ick的帖子

PHPUnit找不到异常类

我在5.3中使用命名空间并尝试使用Symfony2框架在PHPUnit中测试预期的异常.

我期待抛出一个异常,当我使用它时

$this->setExpectedException('ImageResizerException');

我收到以下错误:

Sebastian Bergmann的PHPUnit 3.7.13.

配置从/var/www/branches/3.6.0/api/app/phpunit.xml.dist中读取

.E .................

时间:1秒,记忆:18.25Mb

有1个错误:

1)AssetManagerBundle\Tests\Services\ImageResizerTest :: testOriginalFile ReflectionException:类ImageResizerException不存在

FAILURES!测试:19,断言:54,错误:1.

我有以下结构:

  1. AssetManagerBundle\SERVICES\ImageResizer.php
  2. AssetManagerBundle\SERVICES \例外\ ImageResizerException.php
  3. AssetManagerBundle \测试\ SERVICES\ImageResizerTest.php

我的考试班:

<?php
    namespace AssetManagerBundle\Tests\Services;

    use AssetManagerBundle\Services\ImageResizer;
    use AssetManagerBundle\Services\Exceptions\ImageResizerException;

class ImageResizerTest extends \PHPUnit_Framework_TestCase
{

    public function testOriginalFile()
    {
        $ir = new ImageResizer();
        // test default value
        $this->assertEquals('', $ir->getOriginalFile());

        // test invalid filename
        $this->setExpectedException('ImageResizerException');
        $ir->setOriginalFile('/tmp/test.file');
        $this->assertEquals('/tmp/test.file', $ir->getOriginalFile());


        // test valid filename
        $temp_name  = tempnam(sys_get_temp_dir(), 'test_'.time());
        $handle     = fopen($temp_name, 'w+');
        fwrite($handle, ' ');
        fclose($handle);

        $ir->setOriginalFile($temp_name);
        $this->assertEquals($temp_name, $ir->getOriginalFile());
    } …
Run Code Online (Sandbox Code Playgroud)

php phpunit unit-testing namespaces symfony

11
推荐指数
2
解决办法
8391
查看次数

Javascript数组在初始化后仅包含undefined,而不是给定的值

我以为我知道如何声明javascript数组但是在这个脚本中我得到undefined了数组中无限循环的元素.

我声明了三个数字数组,其中两个有多个值,另一个有一个值.

我有一个switch语句,它将三个数组之一分配给一个新的变量名 cluster_array

当我运行for循环时cluster_array,我得到一个无限循环和每个元素ifundefined

我错过了什么?

<script type="text/javascript">
    var ga_west_cluster = new Array(10,11,12,14,74,75,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,295,296);

// original bad array
    var ga_east_cluster = new Array(84);
// added an extra (dummy) value and it works fine   
    var ga_east_cluster = new Array(1,84);
    var sc_cluster      = new Array(93,94,95,96,97,98,99,100,101,102,103);
</script>
Run Code Online (Sandbox Code Playgroud)

这是alert文字:

var test_message        = "cluster data\n";
    for(var k=0;k<cluster_array.length;k++)
        test_message    += "value: "+cluster_array[k]+"\n";
Run Code Online (Sandbox Code Playgroud)

测试警报框

javascript arrays undefined

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

如何用php设置文件的mime类型?

我正在为一个类编写单元测试,需要生成一些具有不同mime类型的文件.

我知道如何在向远程用户(ala header())发送文件时设置mime类型,但fwrite()在本地服务器上使用时该怎么做?

对于在此方法中生成的文件是直接从文件扩展名派生的mime类型?

我在Ubuntu 12.04上使用PHP 5.3.x.

php fwrite mime-types

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

如何使用apache2和/或PHP创建多级子域

我正在寻找一种在运行Apache2.2和PHP5的服务器上拥有多级子域的方法.理想情况下,解决方案将在Apache而不是PHP.

例如:

www.apps.example.com或test.apps.example.com

我之前在商业网站上看过这个,但是还没有看到任何解决方案来实现这一点.我本质上希望允许用户在任何子域之前输入www或只是输入没有www的子域.所以x.example.com和www.x.example.com都解析到同一目录.

我正在运行CentOS 5.4和Ubuntu 8.04,PHP 5.2.10和Apache 2.2

谢谢

php linux apache2

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

嵌套的php三元麻烦:三元输出!= if - else

我非常有能力使用PHP三元运算符.然而,我试图弄清楚为什么下面的代码与if-else等效结构不匹配时遇到了障碍.测试在不同的数字上运行三次.每个结构的输出都在代码下面.

三元:

$decimal_places = ($max <= 1) ? 2 : ($max > 3) ? 0 : 1;
Run Code Online (Sandbox Code Playgroud)

三元输出:

最大值:-100000十进制:0

最大值:0.48十进制:0

最大值:0.15十进制:0

如果别的

if($max <= 1)
 $decimal_places = 2;
elseif($max > 3)
 $decimal_places = 0;
else
 $decimal_places = 1;
Run Code Online (Sandbox Code Playgroud)

If-Else输出:

最大值:-100000十进制:2

最大值:0.48十进制:2

最大值:0.15十进制:2

任何人都可以告诉我为什么这两个控制结构不输出相同的数据?

php

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

使用PHP搜索带有数组值的字符串

我正在尝试搜索文件列表,并仅对名称包含数组中的几个值的文件执行工作.我希望每次有新文件名时都不必遍历数组.
翼-

$needle = array('blah', 'bleh');
foreach($file_list as $file)
{
    foreach($needle as $need)
       if(strstr($file, $need) !== false)
          {
             // do something...
          }
}
Run Code Online (Sandbox Code Playgroud)

我只需要知道数组中的一个字符串是否在文件名中,而不是字符串的位置.

我想使用类似的东西,strstr()但它不允许使用数组作为针.

即 -

if(strstr($haystack, array('blah', 'bleh')))
{
   // do something...
}
Run Code Online (Sandbox Code Playgroud)

我宁愿远离正规表达,似乎是锤子工作的雪橇.有任何想法吗?

php regex

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

jquery ajax调用不是异步的

我对jQuery实现它的AJAX方法很新鲜.

我有一个简单的设置,访问两个不同的页面,一个需要10秒钟完成(我有一个计时器设置)和一个检查第一页的状态.

这两个函数progressCheck()每秒都以最新状态请求其页面,beginLogin()并且需要10秒才能加载.我在服务器上的用户对象中设置了一个值,两个页面都通过symfony 1.4访问.

问题是,在progressCheck()我点击之前正常工作beginLogin(),然后在完成之前不会进行任何更改beginLogin().我有两个函数设置为异步运行.我知道这一定很简单,但是我很茫然.

我在运行此页面时运行了Firebug-Net,结果是: AJAX网络电话

许多的progressCheck()等待期间为10秒的电话叫,但净说,他们跑了进来〜200毫秒,没有任何等待时间.

有任何想法吗?

代码如下:

<button onclick="beginLogin();">Begin Login</button> 
<button onclick="progressCheck();">Check Progress</button> 
<button onclick="clearCheck();">Clear Check</button>
<br/>
<div id="result_div">

</div>
<div id="progress_div">

</div>

<style type="text/css">
    #progress_div
    {
        width:              800px;
        height:             200px;
        border:             1px solid #CCCCCC;
        overflow:           scroll;
        background-color:   #AAEEFF;
    }

    #result_div
    {
        width:              800px;
        height:             300px;
        border:             1px solid #CCCCCC;
        overflow:           scroll;
        background-color:   #FFEEAA;
    }
</style>
<script type="text/javascript">
    function beginLogin()
    {
        try
        {
            var login_url   = …
Run Code Online (Sandbox Code Playgroud)

php jquery asynchronous race-condition

3
推荐指数
1
解决办法
3940
查看次数

Symfony 的 createNotFoundException 不返回 404 页面

我有一个 Symfony 操作,当查询返回 NULL 时,我试图返回 404 错误。

我总是会返回常规页面的模板和 200 HTTP 返回代码。

我已经检查过,我的错误日志显示 createNotFoundException 正在触发。

我正在运行 Symfony 2.7.1

知道为什么此代码不返回 404 页面吗?

<?php

namespace Example\GroupBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\HttpFoundation\Request;

use Example\GroupBundle\Entity\Group;

/**
 * Class SupportGroupLandingController
 * @package Example\GroupBundle\Controller
 *
 * @Route("/group")
 */
class SupportGroupController extends Controller
{
    /**
     * @Route("/{name}", name="support_group_page")
     * @Method("GET")
     * @Template("ExampleGroupBundle::group_page.html.twig")
     *
     * @param $name
     * @return array
     */
    public function indexAction($name)
    {
        $repo = $this->getDoctrine()->getRepository('ExampleGroupBundle:Group');
        $group = $repo->findOneBy(array('name' => $name));

        if …
Run Code Online (Sandbox Code Playgroud)

http-status-code-404 symfony

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

PHP中三元运算符左侧的符号大于什么?

我在PHP中遇到了一个三元运算的新语法.

$this->view->totalNumber > $itemsPerPage ? $this->view->renderPaginator = true 
                                         : $this->view->renderPaginator = false;
Run Code Online (Sandbox Code Playgroud)

如果结果值大于左侧变量的现有值,这是否只是应用三元运算的某种简写?

php syntax ternary-operator

0
推荐指数
1
解决办法
141
查看次数