小编eme*_*his的帖子

CakePHP/phpunit:如何模拟文件上传

我正在尝试为需要附加CSV文件的发布请求的端点编写测试.我知道要模拟这样的帖子请求:

$this->post('/foo/bar');
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何添加文件数据.我尝试手动设置$_FILES数组,但它不起作用...

$_FILES = [
        'csvfile' => [
            'tmp_name' => '/home/path/to/tests/Fixture/csv/test.csv',
            'name' => 'test.csv',
            'type' => 'text/csv',
            'size' => 335057,
            'error' => 0,
        ],
];
$this->post('/foo/bar');
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

php phpunit cakephp cakephp-3.0

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

如何安全地使用PHP Runkit_Sandbox

我正在构建一个教学工具Web应用程序,允许用户将php类作为文本提交,然后应用程序将运行它们.我认为Runkit_Sandbox是这项工作的工具,但是文档并没有提供关于使用哪种配置的建议.

是否有已建立的应禁用的功能列表?还是上课?我打算将所有其他配置设置为尽可能限制(例如关闭url fopen),但我甚至不能100%确定它们是什么.任何建议都非常感谢.

php security

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

具有自定义功能的Wordpress自定义角色无法访问仪表板

我正在编写一个插件,它创建一个新的post_type和一个相应的角色,只能添加/编辑/等新的post_type.一切都按预期工作,但分配了我的自定义角色的用户无法查看仪表板.用户登录后,会立即收到以下错误:

"您没有足够的权限来访问此页面."

但是,登录成功,当用户浏览网站时,"编辑"链接会显示在自定义帖子上.该用户甚至可以编辑/通过工具栏添加新的自定义职位,但只要他/她点击"仪表盘"或其他任何环节没有直接联系到自定义post_type他们得到上面的错误消息.

我认为这意味着我的自定义功能正在运行......但太好了(因为太严格了).我还想允许基本的"订阅者"权限以及我为自定义post_type定义的功能.我已阅读并重新阅读能力与角色的抄本,看来,我应该能够做什么,我希望通过添加'read' => true到我的能力阵列,但它似乎并不奏效.这是我的代码:

add_action('init', 'setup_dictionary_post');

//Register custom post type 
function setup_dictionary_post() {

$capabilities = array(
    'publish_posts' => 'publish_dictionary_entry',
    'edit_posts' => 'edit_dictionary_entry',
    'edit_others_posts' => 'edit_others_dictionary_entry',
    'delete_posts' => 'delete_dictionary_entry',
    'delete_others_posts' => 'delete_others_dictionary_entry',
    'read_private_posts' => 'read_private_dictionary_entry',
    'edit_post' => 'edit_dictionary_entry',
    'delete_post' => 'delete_dictionary_entry',
    'read_post' => 'read_dictionary_entry'
);

$labels = array(
    'name' => 'Dictionary Entries',
      'singular_name' => 'Dictionary Entry',
      'menu_name' => 'Dictionary Entries',
      'add_new' => 'Add New',
      'add_new_item' => 'Add New Dictionary Entry',
      'edit' => 'Edit entry',
      'edit_item' => 'Edit …
Run Code Online (Sandbox Code Playgroud)

wordpress wordpress-plugin

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

CakePHP请求的生命周期是什么?

Spoiler:我想更好地理解CakePHP应用程序请求的生命周期.

背景:我在CakePHP v2.3上.我正在调试一个导致意外重定向的问题,这是我找不到的.我试图通过逐步添加die()尝试识别重定向被触发的位置来处理请求的生命周期.

我遇到了死胡同,因为我可以从控制器的beforeFilter()中杀死执行,但是如果我移动die()到实际操作中,则会发生重定向.

所以我的具体问题是:在beforeFilter之后但在行动之前会发生什么?我知道beforeRender(),当我放在die()那里时没有效果.

我更普遍/更好的问题是:是否有关于CakePHP请求的整个生命周期的文档?

对其中任何一个的答案都很棒.

更新

感谢Mathew F.的有用建议,我将注意力集中在Auth组件上,因为它几乎是唯一的候选者,我调试的重定向看起来像是手工(用户到达authRedirect位置).但是,当我die()在AppController的顶部trie 时,isAuthorized()没有任何反应.我的控制器没有isAuthorized()它自己的.所以这让我有点难过了.

model-view-controller cakephp cakephp-2.0

4
推荐指数
2
解决办法
1887
查看次数

如何在禁用Javascript时编写CSS回退

我在下面的示例中使用jQuery,但我的问题更普遍适用于使用javascript来显示如果未启用javascript会丢失的内容的任何情况.

假设我想在页面加载时淡入一些文本:

.fade-in { opacity:0; }

<div class="fade-in">FOOBAR</div>

$('.fade-in').fadeIn();
Run Code Online (Sandbox Code Playgroud)

但是,如果客户端没有启用JavaScript,该怎么办?

我不希望文本保持不可见,所以也许我将CSS设置为结束状态作为后备,然后在动画之前使用javascript对其进行UN设置.这样,没有javascript的用户只看到普通文本(没有fadeIn),而JS用户看到淡入淡出.

.fade-in { opacity:1; }

<div class="fade-in">FOOBAR</div>

$('.fade-in').css('opacity', 0);
$('.fade-in').fadeIn();
Run Code Online (Sandbox Code Playgroud)

这是有效的,但在大多数情况下,当设置CSS显示属性和javascript取消设置时,它将导致令人不快的"闪烁".在上面的示例中,javascript正常工作的用户会看到"FOOBAR"出现一瞬间,然后消失,然后淡入.

有没有最好的做法,这不会导致闪烁或牺牲无JS用户?

请不要注意上面的小例子.这只是为了展示这个概念.我正在寻找处理这些案件的更广泛的策略.另外,我不想讨论渐进增强的优点,或者是否支持无JS用户.这是另一个线程的问题.

更新:我知道像Modernizr这样的工具可以用来添加.no-js类等,但我更喜欢不依赖这些库的解决方案.

javascript css progressive-enhancement

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

Safari和Mobile Safari中的内联SVG中断

我最近推出了一个使用了一些内联SVG的网站.

<svg class="divider-icon" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     viewBox="0 0 55.221 58.079" enable-background="new 0 0 55.221 58.079" xml:space="preserve" preserveAspectRatio="xMidYMid meet">
     <path d="[...]"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

在Chrome和Firefox中,一切都很完美,但是当我在iPhone或桌面Safari中进行测试时,布局完全被破坏,许多SVG都丢失了.我通过W3C验证器运行了源代码,一切都找到了.我经常使用SVG,所以这很令人困惑......

css safari svg cross-browser mobile-safari

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

无法在Android模拟器中模拟位置数据

我正在尝试测试我的应用程序,它使用地理定位使用模拟器.这里描述几种方法.我要去Window->Open Perspective->DDMS,然后进入拉特.而且很长.一个Location Controls然后我点击"发送".

在此输入图像描述

但它不起作用.相反,我看到以下错误:Unable to send command to the emulator.

为什么会这样?!?

我认为我的应用程序不是问题,因为我使用模拟器的默认浏览器进行了测试,但它也无法访问位置信息.

细节:

  • OSX 10.9.4
  • AVD_for_Nexus_4_by_Google定位到v4.4.2
  • 适用于Android开发人员的Eclipse IDE 23.0.2.1259578

更新: 我改为AVD_for_Galaxy_Nexus_by_Google,它仍然无法正常工作,但我不再看到错误.我点击发送没有任何反应.

Update2: 我已经使用Telnet测试将位置数据传递给模拟器,并且没有任何反应.没有错误.根本不值一提.Urgh!

telnet localhost 5554
geo fix 50 50
Run Code Online (Sandbox Code Playgroud)

它回应OK但没有任何反应.仍然没有可用的位置数据.

Update3: 我注意到LogCat中存在以下错误的流

09-20 17:58:59.910: E/eglCodecCommon(1777): glUtilsParamSize: unknow param 0x00000b44
09-20 17:58:59.910: E/eglCodecCommon(1777): glUtilsParamSize: unknow param 0x00000bd0
09-20 17:58:59.930: E/eglCodecCommon(1777): **** ERROR unknown type 0x0 (glSizeof,72)
Run Code Online (Sandbox Code Playgroud)

该应用程序似乎运行正常,这些错误据说在这里解释.

更新4: 我已经看到多个建议来确认我的AVD已启用GPS支持,但此选项/设置不会出现在任何地方.当我打开"Android Virtual Device Manager"然后在我的某个设备上点击"编辑"时,这就是我所看到的: 在此输入图像描述

没有提到"GPS支持".

更新5: 我检查了config.ini文件中的所有AVD,它们都被正确设置为 …

eclipse android geolocation android-virtual-device android-emulator

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

如何让 Sublime 3 使用 JSX 语法打开 .js 文件

我正在 MacOS 10.15.7 上使用 Sublime 3,并且正在开发一个 React 项目。

我安装了一个用于 JSX 语法突出显示的包,如果我在打开文件后手动设置它,它可以正常工作。默认情况下,每次我打开文件时,它都会以 JavaScript 突出显示开始,因为我的组件文件具有 .js 扩展名。(这是有原因的。)有没有办法让我配置 Sublime 自动打开这些项目文件并使用 JSX 高亮显示?如果有帮助,我也使用editorconfig

注意:我不想强制 Sublime 将任何 js 文件作为 JSX 全局打开,因为这会导致我的所有 Node.js / JavaScript 项目出现相反的问题。我需要一个针对特定项目的解决方案。

提前致谢!

与以下内容相关:sublime-project 设置文件中的语法特定设置

syntax-highlighting jsx sublimetext3 editorconfig

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

无法将自定义页面模板添加到我的子主题

我正在运行Wordpress 3.3.1.

我正在编写一个修改默认二十一主题的子主题.一切似乎都很正常,但是当我添加自定义页面模板时,它不会出现在添加/编辑屏幕中(所以我无法使用它!).

详细说明"正常",这是什么工作:我的孩子主题出现并正常激活.我的CSS代码(在style.css中)正在出现.模板层次结构中的文件正常工作(例如:front-page.php,page.php)

我已阅读并重读了codex,我的自定义页面模板文件("coming-soon.php")似乎有正确的标题:

<?php
 /*
  Template Name: Coming Soon
 */
Run Code Online (Sandbox Code Playgroud)

那么为什么它不会出现在"模板"下拉列表中???

我已经添加了几十次自定义模板,从来没有遇到过这个问题.我能想到的唯一可能的区别是我正在编写一个儿童主题(即使编码说这不重要),或者也许这是WP最新更新的一个区别.

wordpress wordpress-theming

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

你能将svg图像显示为背景......即使在Internet Explorer中也是如此?

我正在使用SVG图像作为背景图像.我的CSS看起来像这样:

background:url('image.svg');
Run Code Online (Sandbox Code Playgroud)

问题是它们不会出现在IE8或更早版本中.

有没有办法让这项工作?或者也许只为IE指定一个后备?(我不想用其他浏览器的gif替换它们.)

实例:HERE

css internet-explorer svg cross-browser

3
推荐指数
2
解决办法
6291
查看次数