我正在尝试为需要附加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)
这样做的正确方法是什么?
我正在构建一个教学工具Web应用程序,允许用户将php类作为文本提交,然后应用程序将运行它们.我认为Runkit_Sandbox是这项工作的工具,但是文档并没有提供关于使用哪种配置的建议.
是否有已建立的应禁用的功能列表?还是上课?我打算将所有其他配置设置为尽可能限制(例如关闭url fopen),但我甚至不能100%确定它们是什么.任何建议都非常感谢.
我正在编写一个插件,它创建一个新的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) Spoiler:我想更好地理解CakePHP应用程序请求的生命周期.
背景:我在CakePHP v2.3上.我正在调试一个导致意外重定向的问题,这是我找不到的.我试图通过逐步添加die()尝试识别重定向被触发的位置来处理请求的生命周期.
我遇到了死胡同,因为我可以从控制器的beforeFilter()中杀死执行,但是如果我移动die()到实际操作中,则会发生重定向.
所以我的具体问题是:在beforeFilter之后但在行动之前会发生什么?我知道beforeRender(),当我放在die()那里时没有效果.
我更普遍/更好的问题是:是否有关于CakePHP请求的整个生命周期的文档?
对其中任何一个的答案都很棒.
更新
感谢Mathew F.的有用建议,我将注意力集中在Auth组件上,因为它几乎是唯一的候选者,我调试的重定向看起来像是手工(用户到达authRedirect位置).但是,当我die()在AppController的顶部trie 时,isAuthorized()没有任何反应.我的控制器没有isAuthorized()它自己的.所以这让我有点难过了.
我在下面的示例中使用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类等,但我更喜欢不依赖这些库的解决方案.
我最近推出了一个使用了一些内联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,所以这很令人困惑......
我正在尝试测试我的应用程序,它使用地理定位使用模拟器.这里描述了几种方法.我要去Window->Open Perspective->DDMS,然后进入拉特.而且很长.一个Location Controls然后我点击"发送".

但它不起作用.相反,我看到以下错误:Unable to send command to the emulator.
为什么会这样?!?
我认为我的应用程序不是问题,因为我使用模拟器的默认浏览器进行了测试,但它也无法访问位置信息.
细节:
更新:
我改为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
我正在 MacOS 10.15.7 上使用 Sublime 3,并且正在开发一个 React 项目。
我安装了一个用于 JSX 语法突出显示的包,如果我在打开文件后手动设置它,它可以正常工作。默认情况下,每次我打开文件时,它都会以 JavaScript 突出显示开始,因为我的组件文件具有 .js 扩展名。(这是有原因的。)有没有办法让我配置 Sublime 自动打开这些项目文件并使用 JSX 高亮显示?如果有帮助,我也使用editorconfig。
注意:我不想强制 Sublime 将任何 js 文件作为 JSX 全局打开,因为这会导致我的所有 Node.js / JavaScript 项目出现相反的问题。我需要一个针对特定项目的解决方案。
提前致谢!
与以下内容相关:sublime-project 设置文件中的语法特定设置
我正在运行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最新更新的一个区别.
我正在使用SVG图像作为背景图像.我的CSS看起来像这样:
background:url('image.svg');
Run Code Online (Sandbox Code Playgroud)
问题是它们不会出现在IE8或更早版本中.
有没有办法让这项工作?或者也许只为IE指定一个后备?(我不想用其他浏览器的gif替换它们.)
实例:HERE
css ×3
cakephp ×2
php ×2
svg ×2
wordpress ×2
android ×1
cakephp-2.0 ×1
cakephp-3.0 ×1
eclipse ×1
editorconfig ×1
geolocation ×1
javascript ×1
jsx ×1
phpunit ×1
safari ×1
security ×1
sublimetext3 ×1