小编Ric*_*nop的帖子

类都扩展了抽象类并实现了接口

如果我有一个扩展抽象类并实现接口的类,例如:

class Example : AbstractExample, ExampleInterface
{
    // class content here
}
Run Code Online (Sandbox Code Playgroud)

如何初始化这个类,以便我可以从接口和抽象类访问方法?

当我做:

AbstractExample example = new Example();
Run Code Online (Sandbox Code Playgroud)

我无法从界面访问方法.

.net c# oop abstract-class interface

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

权限设置为777,文件仍然无法写入

我已将文件权限设置为777但我无法使用PHP写入该文件.

我可以在我的FTP客户端清楚地看到该文件具有0777权限,当我这样做时:

echo (true === is_writable('file.txt')) ? 'yes' : 'no';
Run Code Online (Sandbox Code Playgroud)

我得到'不';

我也尝试过:

echo (true === chmod('file.txt', 0777)) ? 'yes' : 'no';
Run Code Online (Sandbox Code Playgroud)

结果相同.

目录列表如下所示:

public_html
    public          0777
        css         0755
        js          0755
        file.txt    0777
Run Code Online (Sandbox Code Playgroud)

我正在使用.htaccess文件将所有流量重定向到公共子文件夹.当然,我已将文件排除在重写之外(可以从我检查的浏览器访问):

RewriteRule  ^(file).*  - [L]
Run Code Online (Sandbox Code Playgroud)

这是为什么?

php apache mod-rewrite

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

Zend框架和XML/XSLT集成

我正在尝试使用XML文件和XSL样式表而不是Zend Framework中的普通phtml模板.不过,我不知道如何实现它.

到目前为止我试图做的事情:

  • 而不是.phtml视图我使用.xsl样式表
  • 我使用.xml布局

这是我在每个控制器的init()方法中所做的:

$this->view->xmlStylesheet = '/../application/modules/default/views/scripts/'
. $this->_request->getControllerName() . '/'
. $this->_request->getActionName() . '.xsl';
Run Code Online (Sandbox Code Playgroud)

这给了我一条道路:

/../application/modules/default/views/scripts/index/index.xsl
Run Code Online (Sandbox Code Playgroud)

我的布局看起来像这样:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="<?php echo $this->escape($this->xmlStylesheet); ?>"?>
<page>
    <header></header>
    <content></content>
    <footer></footer>
</page>
Run Code Online (Sandbox Code Playgroud)

并且视图看起来像这样:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/1999/xhtml">

    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"
        media-type="application/xhtml+xml" encoding="iso-8859-1"
        doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>

    <xsl:template match="/">
        <html>
            <head>
                <title>Hello World</title>
                <meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-1"/>
            </head>
            <body>
                <xsl:apply-templates/>
            </body>
        </html>
    </xsl:template>

</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

我在浏览器(Firefox)中得到的只是一个空白页面,其中包含这样的源代码,例如:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/../application/modules/default/views/scripts/index/index.xsl"?>
<page>
    <header></header>
    <content></content>
    <footer></footer>
</page>
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?考虑到我是一名XML初学者,所以我才开始学习如何有效地使用它.

php xml xslt zend-framework

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

XHTML中的noscript替代品?

在HTML中,我可以这样做:

<noscript><link href="css/stylenojs.css" rel="stylesheet" type="text/css" /></noscript>
Run Code Online (Sandbox Code Playgroud)

在XHTML Transitional或Strict文档中是否有一些符合标准的方法?

html xhtml web-standards

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

密码强度验证器,你会如何改进?

首先,我使用StringLength验证器验证密码长度,因此我想将其保留在PasswordStrength验证器之外.任何想法如何改善这个?

我认为我对数组和array_diff的方法并不是很优雅,但我能想到的另一种方法是正则表达式,它更加难看.

<?php
class My_Validate_PasswordStrength extends Zend_Validate_Abstract
{
    const MSG_NO_NUMBER = 'msgNoNumber';
    const MSG_NO_LOWER_CASE_LETTER = 'msgNoLowerCaseLetter';
    const MSG_NO_UPPER_CASE_LETTER = 'msgNoUpperCaseLetter';

    protected $_messageTemplates = array(
        self::MSG_NO_NUMBER => "'%value%' must contain at least one number",
        self::MSG_NO_LOWER_CASE_LETTER => "'%value%' must contain at least one lower case letter",
        self::MSG_NO_UPPER_CASE_LETTER => "'%value%' must contain at least one upper case letter"
    );

    public function isValid($value)
    {
        $this->_setValue($value);

        $arr = str_split($value);
        $numbers = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
        $lowerCaseLetters = array('a', 'b', …
Run Code Online (Sandbox Code Playgroud)

php zend-framework

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

API客户端要使用哪种设计模式?

因此,我得到了一个远程API规范,该规范将用于创建一组类以与我的应用程序中的该API通信。

在设计将用作API客户端的这些类时,我应该注意什么设计模式?

php oop design-patterns zend-framework

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

来自不同数据库的Mysqldump表?

我想备份两个表:table1table2.

table1来自数据库database1.

table2来自数据库database2.

有没有办法用一个mysqldump调用转储它们?

我知道我能做到:

mysqldump -S unixSocket --skip-comments --default-character-set=utf8 --databases database1 --tables table1 > /tmp/file.sql
Run Code Online (Sandbox Code Playgroud)

但是如何从不同的数据库转储两个表?

mysql sql database mysqldump

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

从foreach循环中的DOMNode中删除所有属性

所以这不起作用:

        foreach ($element->attributes as $attribute) {
            $element->removeAttribute($attribute->name);
        }
Run Code Online (Sandbox Code Playgroud)

如果节点有2个属性,则只删除第一个属性.

我尝试克隆DOMNamedNodeMap但没有成功:

        $attributesCopy = clone $element->attributes;
        foreach ($attributesCopy  as $attribute) {
            $element->removeAttribute($attribute->name);
        }
Run Code Online (Sandbox Code Playgroud)

仍然只删除第一个属性.

这个问题在这里解释:http://php.net/manual/en/class.domnamednodemap.php 显然它是一个功能,而不是一个bug.但是评论中没有提到解决方案.

php dom

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

如何检测iPhone是否有视网膜显示?

如何检测iPhone是否有视网膜显示器?有可靠的方法吗?要么是纯PHP,要么是Zend Framework这样做的方式.

php iphone zend-framework retina-display

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

Emacs Python 自动完成

编辑:

我刚刚意识到我正在使用 auto-complete.el 0.2 版本。我想我需要使用 auto-complete.el 版本 0.1。我可以从哪里下载它?我只能在 Google 上找到较新的版本。


我正在尝试在 Emacs 中为 Python 设置自动完成功能。

我使用的是 Ubuntu LTS 版本,我安装了 Python 和 Emacs。

这是我的 .emacs 文件:

(setq-default indent-tabs-mode nil) ; always replace tabs with spaces
(setq-default tab-width 4) ; set tab width to 4 for all buffers

(add-to-list 'load-path "~/.emacs.d/vendor")
(progn (cd "~/.emacs.d/vendor")
       (normal-top-level-add-subdirs-to-load-path))

(require 'python)
(require 'auto-complete)
(require 'yasnippet)

(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))

;; Initialize Pymacs                                                                                           
(autoload 'pymacs-apply …
Run Code Online (Sandbox Code Playgroud)

python django emacs ubuntu

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