这是一个非常简单的问题,我假设答案是"无所谓",但无论如何我都要问...
我有一个用PHP构建的通用sql语句:
$sql = 'SELECT * FROM `users` WHERE `id` IN(' . implode(', ', $object_ids) . ')';
Run Code Online (Sandbox Code Playgroud)
假设先前的有效性检查($object_ids是一个包含至少1个项目和所有数值的数组),我应该执行以下操作吗?
if(count($object_ids) == 1) {
$sql = 'SELECT * FROM `users` WHERE `id` = ' . array_shift($object_ids);
} else {
$sql = 'SELECT * FROM `users` WHERE `id` IN(' . implode(', ', $object_ids) . ')';
}
Run Code Online (Sandbox Code Playgroud)
或者是检查count($object_ids)不值得在实际的sql语句中保存的内容(如果有的话)?
@dataProvider在使用Laravel应用程序中使用PHPUnit编写单元测试时,我遇到了一个问题.我收到的错误是:
PHP致命错误:第7行的/path/to/project/app/models/ExampleClass.php中找不到类'Eloquent'
它看起来像是使用的常数dataProvider导致致命.
composer.json:
"psr-4": {
"Acme\\Models\\": "app/models"
}
Run Code Online (Sandbox Code Playgroud)
phpunit.xml:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
>
<testsuites>
<testsuite name="Application Test Suite">
<directory>./app/tests/</directory>
</testsuite>
</testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)
示例模型:
<?php
namespace Acme\Models;
use Eloquent;
class ExampleClass extends Eloquent
{
/**
* @var bool
*/
const TRUE = true;
}
Run Code Online (Sandbox Code Playgroud)
示例测试类:
<?php
use Acme\Models\ExampleClass;
class ExampleClassTest extends TestCase
{
/**
* Example test.
*
* @param int $value
* @return void
* …Run Code Online (Sandbox Code Playgroud)