小编Kim*_*nce的帖子

有趣的PHP语法:'暗示如果'?

我在Zend Framework项目的默认index.php文件中遇到了这个有趣的行:

defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
Run Code Online (Sandbox Code Playgroud)

它似乎在说"如果没有定义APPLICATION_PATH,那么继续并定义它......"

我不知道PHP中的这种控制结构.它几乎就像是"隐含的if"或"if/else".任何人都可以帮我解决这个问题吗?

php zend-framework

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

Zend版本发布日期

我在哪里可以找到Zend Framework每个上一版本的发布日期?

在我努力学习框架的过程中,我经常提到博客文章和教程.这些文章通常过时但不知道框架的发布日期,很难将文章与其预期的Zend版本结合在一起.

谢谢!

documentation zend-framework

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

Zend_Loader与Zend_Test和PHPUnit的Autoloader

我正在使用PHPUnit和Zend Framework进行测试,并且在自动加载方面存在一些琐碎的问题.

首先,我不知道为什么我需要在我的phpunit bootstrap.php中设置自动加载.在生产环境中,index.php文件是不是加载它?(我的测试用例是扩展Zend_Test_PHPUnit_ControllerTestCase).

其次,我很难用Zend_Loader_Autoload替换Zend_Loader.

如果我在我的bootstrap中使用此代码...

require_once "Zend/Loader.php";
Zend_Loader::registerAutoload();
Run Code Online (Sandbox Code Playgroud)

...测试运行正常,但有关Zend_Loader被弃用的警告.

如果我使用此代码,但是......

require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
Run Code Online (Sandbox Code Playgroud)

测试找不到库类和致命错误结果.

在我的application.ini中,我有一行autoloaderNamespaces [] ="CP_".似乎Loader类可以看到它,但不是Autoloader类.好奇...

有任何想法吗?

谢谢!

php zend-framework

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

Zend_Auth并在UI上动态更改用户详细信息

当我的用户登录时,我在UI上显示他们的详细信息(姓名,电子邮件).当他们更新他们的个人资料时,我想显示更新的详细信息,而无需用户注销并重新登录.

通过视图助手从Zend_Auth检索UI详细信息.Zend_Auth在会话中存储"身份"细节.

我该如何更新会话中的详细信息?:

  • 我正在考虑从数据库中检索用户的登录凭据,并使用它们再次调用Zend_Auth-> authenticate().问题是我不知道密码,只有它是md5哈希.我可以考虑一个新的方法,reauthenticate(),它配置适配器绕过md5和salt,但这听起来很费力.

  • 我正在考虑直接写入Zend_Auth会话命名空间,但这听起来像是一个麻烦的方法?

你遇到过类似的问题吗?你是怎么处理的呢?

非常感谢您的想法!

php zend-framework

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

如何处理此PHP/mysql插入语句中的空值

我有时会使用null或空值的数组.在MySql中,它们被设置为不可为空,但它们分配了默认值.那么,为什么MySql会给我一个错误,例如Column user_type can not be null.(我没有以严格的模式运行).

我意识到在准备查询时我可以使用关键字DEFAULT代替一些值,但我真的不想这样做.我希望能够逐字编写我的SQL语句,而不是将它们与foreach循环等组合在一起.例如,我想使用"INSERT INTO users (user_type, first_name, last_name, password) VALUES (:user_type, :first_name, :last_name, :password)";

据我记得,这个工作正常(即用正确的默认值代替),直到我离开使用?查询标记到命名参数...

谢谢...

php mysql null

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

VueJS Datepicker 不接受 dd/MM/yy

更新:

这是一个错误,我已将其作为问题在 github 上提出。老实说,该组件还没有真正准备好供主流使用。


vuejs-datepicker如果日期是 13 或更长,我将不接受 dd/mm/yy 格式。据推测,这是因为它将前两位数字解释为月份,因此拒绝任何大于 12 的数字。

日历弹出。您可以选择一个日期,它会显示在输入字段中。然而,一旦视野失去焦点,它就会被清除。

我尝试过使用静态字符串作为 的值format和函数。以下是功能版本。

HTML:

<div id="respond_by">
    <date-picker name="respond_by"></date-picker>
</div>
Run Code Online (Sandbox Code Playgroud)

页面底部的脚本:

<script>
    $(function () {
        new Vue({ el: "#respond_by" });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

我的单个文件组件:

<template>
    <vue-date-picker placeholder="dd/mm/yy"
                     input-class="form-control"
                     :name="name"
                     :format="customDateFormat"
                     monday-first
                     typeable></vue-date-picker>
</template>

<script>
    import moment from 'moment';
    import DatePicker from 'vuejs-datepicker';

    export default {
        props : [
            'name'
        ],
        components: {
            'vue-date-picker' : DatePicker
        },
        methods: {
            customDateFormat(date) {
                return moment(date).format('DD/MM/YY');
            }
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

全局注册组件:

import …
Run Code Online (Sandbox Code Playgroud)

vue.js vuejs-datepicker

5
推荐指数
0
解决办法
6640
查看次数

使用 Google Cloud 或 Drive 以编程方式将 Word 转换为 PDF

候选人使用我的 PHP 应用程序以 Word 或 PDF 格式上传他们的简历。我想将 Word 文档(doc 或 docx)转换为 PDF。我曾尝试使用服务器上的解决方案(PHP 库),但找不到足够可靠的解决方案,因此我现在正在探索 Google 解决方案。

Drive API 似乎正是我所需要的。我可以:

  • 上传 Word 文档并请求转换为 Google Doc。
  • 将文档导出为 PDF
  • 删除文档

问题是(据我所知),我可以访问 Drive API 的唯一方法是通过 OAuth 2,这在简单的服务器到服务器访问的情况下是相当大的开销。我更喜欢使用简单的 API 密钥。

据我所知,如果我想使用 API 密钥,那么我需要注册一个 Google 服务帐户,这似乎又是一个相当大的开销。(我只想转换一些文件,对吗?)。

有没有直接的方法来实现我的目标(使用 Google 资源)?还是上面的两个选项是我唯一的选择?

pdf ms-word google-drive-api google-oauth

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

Laravel:表单文件上传失败-检测到错误的类型

我最近使用了上传简历的系统,但拒绝率却异常高,大约为15%。当我查看日志时,它显示了以下结果:

  • 客户端报告的扩展名为docx(基于$file->getClientOriginalExtension()
  • 客户端报告的MIME类型为application/vnd.openxmlformats-officedocument.wordprocessingml.document(基于$file->getClientMimeType()
  • Laravel / PHP检测到文件.bin基于(基于$file->extension()

换句话说,客户端说它正在上载docx文件,但是服务器说它收到了一个bin。起初我以为只是腐败,但它经常发生。

到目前为止,我仅在日志中捕获了一些日志,但是我注意到每次Safari都是浏览器时。Safari是否存在系统性问题?如果是这样,我该如何解决?

还有什么可能导致该问题?

我正在使用Vue触发表单提交,但是我看不出这有什么用。这是Vue代码:

document.getElementById("new-application").submit();
Run Code Online (Sandbox Code Playgroud)

html php safari file laravel

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

Zend Framework插件和助手 - 更多信息

我正试图解决这些问题,并一直在阅读Zend Framework in Action(Allen)和在线文档.在我看来,这:

  • Action Helpers为控制器提供按需功能; 和
  • 控制器插件为所有控制器提供运行时功能.

是对的吗?

其次,我看到Controller Plugins和Action Helpers可以有init(),preDispatch()和postDispatch()方法.相对于Action Controller本身的那些,以及其他插件和Helpers中的那些,它们执行的优先级是什么?

最后,View Helpers是否有类似的特征,或者这些是完全不同的野兽?

任何指向更多文档的指针都将非常感谢!

zend-framework

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

Vuejs 2:debounce 不适用于手表选项

当我在 VueJs 中去抖动这个函数时,如果我提供毫秒数作为原语,它就可以正常工作。但是,如果我提供它作为对道具的引用,它会忽略它。

这是道具的缩写版本:

props : {
    debounce : {
        type : Number,
        default : 500
    }
}
Run Code Online (Sandbox Code Playgroud)

这是不起作用的监视选项:

watch : {
    term : _.debounce(function () {
        console.log('Debounced term: ' + this.term);
    }, this.debounce)
}
Run Code Online (Sandbox Code Playgroud)

这是一个确实有效的监视选项:

watch : {
    term : _.debounce(function () {
        console.log('Debounced term: ' + this.term);
    }, 500)
}
Run Code Online (Sandbox Code Playgroud)

它怀疑这是一个范围问题,但我不知道如何解决它。如果我按如下方式替换 watch 方法...:

watch : {
    term : function () {
        console.log(this.debounce);
    }
}
Run Code Online (Sandbox Code Playgroud)

...我得到了正确的去抖动值 (500) 出现在控制台中。

javascript vue.js vuejs2 debounce

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