背景
我有一个关于度假的应用程序的想法,需要与具有相同应用程序的其他手机通信.在度假期间,这些手机可能并非都有互联网,因为漫游可能非常昂贵.数据不是很多:像500 kB max就足够了(在json中).
每部手机都有一些其他手机想知道的信息,但是如果它有助于将信息存储在一部手机(从现在开始的主手机)上,并在以后通过互联网回家时与其他手机共享.
手机
Android,iPhone和Windows Phone我们不能假设他们有NFC,IR或zigbee.只是硬件几乎每个手机都有蓝牙,相机,麦克风等.
我的想法
基于新信息更改的QR码:如果扫描第一部电话,则第二部电话的QR码包含来自第一部电话及其自身的数据,第三部电话具有来自第一部,第二部和第三部(自身)的数据,直到达到该主电话为止包含所有数据的手机.
数据传输通过我们听不到的声音(或我们可以).Con是我不知道移动平台是否存在这样的东西,写它就像是一个3年的硕士论文项目.
所有这些想法都有很大的缺点.也许我忽视了一个更好的方式.
我将为最佳解决方案的问题添加一个赏金用一点代码参考解释它的答案(链接没问题)总是好于:"使用蓝牙人"
我想完全禁止生产错误报告,因为我们有一些非常旧的代码,我们仍然需要修复,但现在确实有效(是的我也不喜欢它).我们无法在几天内修复所有内容,因此我们需要像往常一样压制警告和异常.
真正的问题是它已经在一个简单的懒惰的bug上引发异常(因为没有定义var)
if(!$var) {
// do whatever
}
Run Code Online (Sandbox Code Playgroud)
试着
APP_DEBUG = FALSE
APP_LOG_LEVEL =紧急
display_errors(false);
set_error_handler(null);
set_exception_handler(null);
Run Code Online (Sandbox Code Playgroud)
但它仍然显示出一个 ErrorException
未定义的变量:script_name_vars_def
编辑:代码的工作原理如下
web.php
Route::any('/someroute', 'somecontroller@controllerFunc');
Run Code Online (Sandbox Code Playgroud)
somecontroller.php
public controllerFunc() {
ob_start();
require '/old_index.php';
$html = ob_get_clean();
return response($html);
}
Run Code Online (Sandbox Code Playgroud)
这样我们就可以使用Laravel路由,而无需立即重写旧代码.
我知道我可以很容易地修复这个警告,但是这些错误还有很多,我们现在需要使用Laravel路由.稍后解决问题.
思路
$dontReport.@在正确的地方使用抑制编辑解释中间件无法正常工作的步骤
1)创建midddleware
php artisan make:middleware SuppressExceptions
Run Code Online (Sandbox Code Playgroud)
2)写下来
SuppressExceptions.php
public function handle($request, Closure $next)
{
error_reporting(0);
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
3)注册
laravel /应用/ HTTP/Kernel.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\SuppressExceptions::class,
],
Run Code Online (Sandbox Code Playgroud) 我的问题是我找到了许多其他答案,但没有一个对我有用.代码和"服务器"都是localhost.编辑:尝试使用端口9001,而不是在一些答案中建议+如果Visual Studio代码工作尝试,但奇怪的是:它打破了VS代码中的异常,但仍然没有在断点上.连接似乎有效:
xdebug
xdebug support enabled
Version 2.4.1
IDE Key XDEBUG_ECLIPSE
XDEBUG NOT LOADED AS ZEND EXTENSION
Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.145 $
Directive Local Value Master Value
xdebug.auto_trace Off Off
xdebug.cli_color 0 0
xdebug.collect_assignments Off Off
xdebug.collect_includes On On
xdebug.collect_params 0 0
xdebug.collect_return Off Off
xdebug.collect_vars Off Off
xdebug.coverage_enable On On
xdebug.default_enable On On
xdebug.dump.COOKIE no …Run Code Online (Sandbox Code Playgroud) 我在测试授权策略时遇到了问题,它显示了一个冒险的测试,我不知道如何解决这个问题.这是一个新安装的laravel 5.5
PHPUnit 6.5.13 by Sebastian Bergmann and contributors.
R. 2 / 2 (100%)
Time: 99 ms, Memory: 16.00MB
There was 1 risky test:
1) Tests\Feature\ExampleTest::testBasicTest
Test code or tested code did not (only) close its own output buffers
OK, but incomplete, skipped, or risky tests!
Tests: 2, Assertions: 2, Risky: 1.
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码:
public function testBasicTest()
{
$this->get('/home')
->assertStatus(403);
}
Run Code Online (Sandbox Code Playgroud)
当我使用时dd($this->get('/home')->getContent());,我收到类似这样的错误..
file_get_contents([internal]): failed to open stream: No such file or directory
in Frame.php line 122
Run Code Online (Sandbox Code Playgroud)
这是我的家庭控制器
<?php
namespace …Run Code Online (Sandbox Code Playgroud) 如文档中所述
基于封闭的路由无法缓存。要使用路由缓存,必须将任何Closure路由转换为控制器类。
但是,如果我想对路由进行分组,则可以使路由本身指向控制器(函数),但分组仍然是 Closure
Route::group(array('prefix' => 'admin', 'before' => 'auth'), function() // Closure
{
Route::get('/', 'Examplecontroller@bla'); // non Closure
});
Run Code Online (Sandbox Code Playgroud)
也许出于研究目的:将路由存储在哪里?
我有一个主函数A,在函数B之前和函数C之后调用。两者都保存一个模型,并且在函数A中都有自己的开始事务和主事务,数据如何存储?
我试图在函数 C 上抛出异常,但函数 B 在任何地方存储变量 $modelB
public function B(){
DB::beginTransaction();
try{
$modelB->save();
DB::commit();
}catch(\Exception $e){
DB::rollback();
}
}
public function C(){
DB::beginTransaction();
try{
$modelC->save();
DB::commit();
}catch(\Exception $e){
DB::rollback();
}
}
public function A(){
DB::beginTransaction();
try{
$this->B();
$this->C();
DB::commit();
} catch(\Exception $e){
DB::rollback();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在研究一个drupal模块(无关紧要),我想重新创建一个javascript/jQuery事件.如果我使用chrome并转到事件监听器,我看到第57行调用了jQuery脚本,但这并没有真正帮助:
那么有人知道像Chrome插件或其他东西的伎俩吗?它可以为我节省很多时间.
我正在使用 PHP v5.6。
当我读到 php json_encode 函数会自动将 int 转换为 string 时。但就我而言并非如此。Json_encode 仍然将其返回为 int 而不是 string。
比如例子:
json_encode(['code' => 200, 'results' => [id=> 1]]);
Run Code Online (Sandbox Code Playgroud)
我的预期结果是全部变成字符串。但我得到的是
{"code":200,"results":{"id": 1}}
Run Code Online (Sandbox Code Playgroud)
预期输出:
{"code":"200","results":{"id": "1"}}
Run Code Online (Sandbox Code Playgroud)
如何将所有结果更改为字符串而不对每个值使用“”?
注意:结果数组基于查询。
跟进我昨晚的问题之后,我睡了一个好觉,并“发现”这是由于自动转换/类型转换或其他原因导致的。
总结:
uuid作主键trigger从MySQL插入获得它们$model_object->fresh(); fresh()模型
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Address extends Model {
protected $table = 'Addresses';
protected $fillable = ['uuid', 'zipCode', 'houseNumber'];
protected $primaryKey = 'uuid';
//public $incrementing = false;
}
Run Code Online (Sandbox Code Playgroud)
控制器(拧紧的地方)
public function store(Request $request) {
$input = $request->all();
$address = Address::create($input);
var_dump($address); exit;
Run Code Online (Sandbox Code Playgroud)
$address = $address->fresh();
var_dump($address); exit;
Run Code Online (Sandbox Code Playgroud)
var_dump($address->uuid); exit;//result (wow): int(0)
}
Run Code Online (Sandbox Code Playgroud) php ×7
laravel ×5
laravel-5 ×2
laravel-5.4 ×2
android ×1
atom-editor ×1
bluetooth ×1
breakpoints ×1
caching ×1
eloquent ×1
html ×1
ios ×1
javascript ×1
jquery ×1
json ×1
laravel-5.3 ×1
mysql ×1
phpunit ×1
transactions ×1
transmission ×1
uuid ×1
xdebug ×1