小编Tyl*_* V.的帖子

Chrome DevTools 中的隔离模式有什么实际用途?

右键单击 Chrome DevTools 的“元素”选项卡中的大多数元素,您将找到“进入隔离模式”的选项。它在视觉上隐藏了页面上的所有其他内容(尽管 CSS 或 DOM 的更改似乎仍然会影响页面布局。)

这样做的目的是什么?我理解添加它是为了允许 Selenium 或类似的工具来定位他们的报告。但为什么人类用户需要这个呢?如何使用它来帮助调试?

google-chrome chromium google-chrome-devtools

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

如何模拟订阅的过期状态

我在cron上设置了一个PHP脚本,它通过API联系Braintree,以查找我们存档的每个订阅的状态.然后,我们根据客户的订阅状态更新我们的本地记录.因为我可以手动取消从布伦特里控制面板订阅,我已经能够测试我的脚本可以检测取消订阅.

但是,我找不到任何方法来测试过期状态,而不是等待结算周期.由于Braintree中计费周期的最小长度为一个月,因此调试脚本非常困难.

我知道理论上我应该只看到订阅状态的不同字符串,但我正在寻找一种可重现的方式来模拟过期状态,以及daysPastDue的正余额和值.

有人可以帮忙吗?

$BT_subscription = Braintree_Subscription::find($BT_subscription_id);
if ($BT_subscription && $BT_subscription instanceof Braintree_Subscription) {
    if ($BT_subscription->status == 'Past Due' && $BT_subscription->balance > 0) {
        // ...
Run Code Online (Sandbox Code Playgroud)

php subscriptions braintree

8
推荐指数
2
解决办法
3215
查看次数

使用JavaScript检测使用过的srcset或图片标记源

当你像这样使用srcset时:

<img src="example-src.jpg" srcset="example-1x.jpg 1x, example-2x.jpg 2x" />
Run Code Online (Sandbox Code Playgroud)

或使用这样的图片标签:

<picture>
   <source media="(min-width: 64em)" src="high-res.jpg">
   <source media="(min-width: 37.5em)" src="med-res.jpg">
   <source src="low-res.jpg">
   <img src="fallback.jpg" />
</picture>
Run Code Online (Sandbox Code Playgroud)

是否有可能找出浏览器决定使用的URL?检查标签本身的src属性<img>实际上并不能告诉您加载了哪个图像.

(对不起,如果这是重复的.我无法在任何地方找到解决方案.)

javascript html5 srcset

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

通过布局XML文件将助手类传递给参数

我有一个工作链接添加到top.links块像这样:

<block type="page/template_links" name="top.links" as="topLinks">
    <action method="addLink">
        <label>About Us</label>
        <url helper="mymodule/getAboutUsUrl"/>
        <title>About Us</title>
        <prepare/>
        <urlParams/>
        <position>20</position>
    </action>
</block>
Run Code Online (Sandbox Code Playgroud)

最终我想让getAboutUsUrl变成getExternalSiteUrl.我想要一个函数来获取参数.例如,getExternalSiteUrl('about-us')然后返回//url/about-us之类的东西.但是,我似乎找不到在Layout XML文件中发送辅助类参数的方法.我已经搜索了其他模块,并且在我搜索的Customer模块中找不到.

有人可以帮忙吗?

magento magento-1.7 magento-layout-xml

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

创建新类型的导航菜单项

我正在开发的一个网站有一个复杂的“大型菜单”类型的导航。我希望内容编辑器能够在标记中按列对菜单项进行分组。通常,如果我想要 6 列,我会注册 6 个菜单并将它们命名为第 1-6 列,但是这些是动态子菜单,需要成为另一个菜单中另一个导航项的子菜单。

我真正想做的是创建一种新类型的导航菜单项(当前是页面、链接、类别以及我的其他自定义帖子类型和自定义分类法),其中该项目仅用于列。(我将它用于列的事实在这里并不重要。这可以很容易地作为分隔符或其他东西。我只需要一个新的导航菜单项类型,当我构建菜单。)

有没有办法创建新的导航菜单项类型,而无需创建仅用于此目的的自定义帖子类型或自定义分类法?

wordpress menu

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

PHP 向多维数组添加新索引,恕不另行通知

举个例子:

$data = array();
$data['a']['one'] = 'test';
Run Code Online (Sandbox Code Playgroud)

这将引发通知,因为$data['a']不存在。因此,我总是这样做:

$data = array();
$data['a'] = array();
$data['a']['one'] = 'test';
Run Code Online (Sandbox Code Playgroud)

或者如果我陷入循环,像这样:

$data = array();
foreach ($items as $item) {
    if (!isset($data['a'])) {
        $data['a'] = array();
    }
    $data['a']['one'] = $item->getId();
}
Run Code Online (Sandbox Code Playgroud)

这在代码中变得非常重复并且混乱。我知道我可以编写某种array_push替代函数来处理这个问题,但我想知道是否有一种方法可以使用现有的 PHP 方法来做到这一点。

php arrays multidimensional-array

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

将文件包含到名称空间中

我正在与Magento合作,但这不是Magento的特定问题。

假设您正在使用包含类Foo的foo.php。在Magento中,如果存在/local/foo.php,则将其包括在内;否则,将包括/core/foo.php。两者都定义了Foo类。这里的问题在于两个文件都包含类Foo,因此/local/foo.php中的类无法扩展/core/foo.php中的类。最终,这需要将/core/foo.php中的所有代码复制到/local/foo.php中,减去我的自定义内容。

/core/foo.php - 我不能改变这个文件!

<?php
class Foo {
    public function test() {
        echo 'core/foo.php :: Foo :: test';
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

/local/foo_include.php

<?php
namespace mage {
    require '../core/foo.php;
}
?>
Run Code Online (Sandbox Code Playgroud)

/local/foo.php - 我不能把一个命名空间在这个文件中,因为我有文件实例化这个类没有控制权。

<?php
require './foo_include.php';

use mage;
class Foo extends mage\Foo {
    function __construct() {
        var_dump('Un-namespaced Foo!');
    }
}

$foo = new Foo();
$foo->test();
Run Code Online (Sandbox Code Playgroud)

?>

上面的方法不起作用,说法师\ Foo不存在。(如果核心Foo类是在foo_include中定义的,而不是通过include引入的,则它确实起作用。

有什么办法可以解决我所缺少的吗?

php namespaces class include magento

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

使用Reflection查找方法所属的类

我在Magento工作,但这更像是一个普通的PHP问题.情况是在Magento中,有些类扩展了扩展类的类的类.我希望能够快速找到哪个类实际包含方法的定义和/或该方法实际上是魔术.

因此,例如,如果我在扩展其他类的类中有10个级别,并且这10个类中的4个有一个调用的方法getHtml,我希望能够找到在调用时实际调用这些方法中的哪一个$this->getHtml().我还想知道它getHtml是否真的是一种神奇的方法.

如何使用PHP Reflection Class或任何其他编程方法执行此操作?

php reflection class magento

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

将异常抛出到下一个 Catch 块

我想捕获一个自定义异常,对其执行一些逻辑,如果失败,则将其扔到更通用的 catch 块中。就像这样:

class My_Exception extends Exception {
    protected $_nonFatal = false;

    public function __construct($value, $nonFatal = false) {
        $this->_nonFatal = (bool)$nonFatal;

        return parent::__construct($value);
    }

    public function isNonFatal() {
        return (bool)$this->_nonFatal;
    }
}

try {

} catch (My_Exception $e) {
    if ($e->isNonFatal) {
        // #1
        // Err gently
    }

    // #2
    // The error was fatal, so keep throwing it
    throw new Exception($e->getMessage());

} catch (Exception $e) {
    // #3
    echo 'An exception was caught with the message '.$e->getMessage();
} …
Run Code Online (Sandbox Code Playgroud)

php exception

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

rb-inotify 的更新是否只是破坏了 Ruby 1.x 上的指南针?

12 月 15 日rb-inotifygem更新到0.10.0现在需要的版本Ruby 2.2或更高版本。compass宝石具有的运行依赖rb-inotify >= 0.9这似乎现在自动包括版本0.10.0。因此在Ruby 1.9.3上安装时compass,安装rb-inotify失败,导致安装compass失败。

我是否正确理解了这一点?已rb-inotify现破裂喜欢简单的命令gem install compass上的Ruby 1.x的?在不更新 Ruby 的情况下解决此问题的最佳方法是什么?

ruby rubygems compass

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