小编koh*_*oth的帖子

如何在Laravel 5中按键获取所有缓存项目的列表?

laravel中的Cache类具有诸如get('itemKey')之类的方法来从缓存中检索项目,并记住('itemKey',['myData1','myData2'])以将项目保存在缓存中.

还有一种方法可以检查缓存中是否存在项目:Cache :: has('myKey');

有没有办法(使用基于文件的缓存驱动程序时)获取缓存中所有项目的列表?

例如,某些可能被命名为"Cache :: all()"的东西会返回:

[
    'itemKey' => [
        'myData1',
        'myData2'
   ],
   'myKey' => 'foo'
]
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是使用Cache :: has()方法遍历所有可能的键名.即aaa,aab,aac,aad ......但当然,这不是解决方案.

我在文档或描述这样的函数的API中看不到任何内容,但我认为不相信一个必须存在是不合理的.

php caching key laravel laravel-5

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

如何使用本机 Web 组件阻止 FOUC 发生

我正在尝试原生 Web 组件,到目前为止我真的很喜欢它们。

我创建了一个微型网站,其中包含主页、关于页面、联系页面以及通过更改 URL 的哈希部分来工作的菜单。

但是,我注意到一种不良效果 - 每当我从一个“页面”切换到另一个“页面”时(实际上,只是卸载一个本机 Web 组件,然后安装另一个),大约半秒钟,我就会看到 Web 组件渲染使用默认样式,然后使用我包含在影子 DOM 中的样式进行绘制。

最初,我的组件是这样的:

    const template = document.createElement('template');
    template.innerHTML = `
        <style>
            @import '../reset.css';
            @import '../vars.css';
            @import '../bodyText.css';
        </style>
        <div class="body-text">
            <h1>Home page</h1>
            <p>Home. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate …
Run Code Online (Sandbox Code Playgroud)

fouc native-web-component

7
推荐指数
2
解决办法
2714
查看次数

Laravel:PHPUnit为所有东西造成了404s

我正在尝试使用PHPUnit为我的Laravel应用程序运行一些基本的单元测试.

但是,所有HTTP请求都返回404未找到的HTTP状态代码,因此我们在第一个障碍时失败.

在浏览互联网之后,我找到了有关如何解决此问题的信息,但到目前为止,这些都没有实际起作用:

  • 检查我是否正确引用了命名路由.
  • 检查此路由是否具有控制器方法.
  • 检查它是否在浏览器中有效.
  • 我确保我的应用程序URL在所有正确的位置都正确设置:TestCase::$baseUrl,Config->app->url...设置为http://localhost/myappfolder
  • 我在单元测试方法中尝试了不同的方法来获取HTTP响应对象.到目前为止,所有导致404: ,$this->route(),.$this->action()$this->call()
  • 我已经尝试从控制器中删除对路由保护中间件的所有引用.我相信它在运行单元测试时被禁用了,但是我已经这样做了,因为我正在试着诊断这个问题.没有效果.
  • 我的应用程序的根文件有几个PHP require,包括较小的路由文件.Taylor Otwell之前曾说过像这样的路由文件,但是包含require_once这些文件会导致这些404错误.他建议换到require.一些开发人员报告说,这为他们修复了它,但我的一直require都是.我还尝试将路线移回主路线文件,但这也没有用.

调查通常是不寻常的:

  • 如果我在其中编辑route()方法Illuminate\Foundation\Testing\Concerns以打印出它生成的URL,那么它实际上是完美形成的:http://localhost/myprojectfolder/route-url-text.在浏览器中访问此页面工作正常.使用cURL访问它也有效.$this->call()在生成的URL上运行,然后运行PHPUnit再次显示404.所以它只是PHPUnit做一些奇怪的事情.

这是我在单元测试脚本中使用的代码:

public function testThis()
{
    $response = $this->route('GET', 'myRouteName', [
        'myParam' => 5
    ]);
    dd($response->status()); // 404 - always!
}
Run Code Online (Sandbox Code Playgroud)

就像有一些东西踩到并明确地抛出一个404 ......如果有人能够阐明这一点,我真的很感激.

php phpunit laravel

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

标签 统计

laravel ×2

php ×2

caching ×1

fouc ×1

key ×1

laravel-5 ×1

native-web-component ×1

phpunit ×1