如果我在PHP中定义一个接口,以及一个创建该接口实例的工厂类,有什么办法可以强制客户端代码只使用接口而不是底层的具体类?根据我的理解,客户端也能够实际使用底层类中的任何公共函数/字段.
这是一个例子:
<?php
interface IMyInterface
{
public function doSomething();
}
?>
<?php
class ConcreteImplOfMyInterface implements IMyInterface
{
const NotPartOfInterface = 'youcantseeme';
public function doSomething()
{
}
}
?>
<?php
class MyInterfaceFactory
{
public static function createMyInterface()
{
return new ConcreteImplOfMyInterface();
}
}
?>
<?php
function client()
{
$myInterface = MyInterfaceFactory::createMyInterface();
return $myInterface::NotPartOfInterface;
}
?>
Run Code Online (Sandbox Code Playgroud) 这是关于Websocket协议76中握手的问题.
我写了一个客户端和服务器,但是让客户端接受握手时遇到了麻烦.我可以看到它被返回,但客户端立即关闭连接.我猜我的md5sum响应一定不正确.
据我所知,我正在遵循正确的程序,谁能告诉我我做错了什么?
def create_handshake_resp(handshake):
# parse request
final_line = ""
lines = handshake.splitlines()
for line in lines:
parts = line.partition(":")
if parts[0] == "Sec-WebSocket-Key1":
key1 = parts[2]
elif parts[0] == "Sec-WebSocket-Key2":
key2 = parts[2]
final_line = line
#concat the keys and encrypt
e = hashlib.md5()
e.update(parse_key(key1))
e.update(parse_key(key2))
e.update(final_line)
return "HTTP/1.1 101 WebSocket Protocol Handshake\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nWebSocket-Origin: http://%s\r\nWebSocket-Location: ws://%s/\r\nWebSocket-Protocol: sample\r\n\r\n%s" % (httphost, sockethost, e.digest())
def parse_key(key):
spaces = -1
digits = ""
for c in key:
if c …
Run Code Online (Sandbox Code Playgroud) 现在我正在尝试打开一系列网址 window.open
for(i=0;i<10;i++)
{
window.open("myapp://arg1/arg2/arg3/number_"+i);
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,除了弹出十个窗口.我想知道有没有办法做这个工作与未显示的窗口?帮助将不胜感激!
在VIM中,在使用"/"命令查找文本后,该文本仍然突出显示.
删除它的命令是什么?我根本不想删除突出显示功能,但是一旦我找到了我需要的东西,就不想拥有所有那些明亮的文本点.
谢谢.
我正在使用自动表单标签帮助程序来创建我的表单标签并通过i18n支持将它们翻译,但是,我想在标签中包含HTML,而我无法弄清楚如何使HTML安全.
例如:
en:
helpers:
label:
product:
name: 'Your Product Name <small>Try to be creative</small>'
Run Code Online (Sandbox Code Playgroud)
结束为:
<label for="product_name">Your Product Name <Try to be creative></label>
Run Code Online (Sandbox Code Playgroud)
但我希望它是:
<label for="product_name">Your Product Name <small>Try to be creative</small></label>
Run Code Online (Sandbox Code Playgroud)
有没有办法让我将翻译指定为html_safe,以便在输出之前不进行编码?
此外,这似乎是HTML设置的最具语义的方式,但如果我完全以错误的方式接近这一点,我愿意接受建议.
谢谢 :)
更新:
<%= form_for @product do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<% end %>
Run Code Online (Sandbox Code Playgroud) 当用户单击"我的通知"选项卡时,我希望他查看新旧通知列表以及操作发生的时间.这意味着,必须存储通知,甚至必须有一个光标进行分页.
Django消息框架是否这样做?
在OCaml中,您可以嵌套签名:
module type FOO =
sig
module type BAR
(* … *)
end
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有人在使用中有任何这样的例子,因为我想不出任何需要它的地方.我想它在函子的返回签名中可能很有用,但我想不出任何具体的东西.
我发现这个功能做了很棒的工作(恕我直言):http://nadeausoftware.com/articles/2007/06/php_tip_how_get_web_page_using_curl
/**
* Get a web file (HTML, XHTML, XML, image, etc.) from a URL. Return an
* array containing the HTTP server response header fields and content.
*/
function get_web_page( $url )
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // who am i
CURLOPT_AUTOREFERER => true, // set referer …
Run Code Online (Sandbox Code Playgroud) 我正在使用Django CMS 2.1.0.beta3并遇到问题.我需要访问变量中的所有页面,以便我可以使用for循环遍历它们并创建导航菜单.django cms提供的show_menu功能对我正在做的事情不起作用.
我需要一个包含所有页面的查询集,所以我可以做类似以下的事情:
{% for page in cms_pages %}
{{ page.title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何访问所有已发布的页面对象,如所有页面上的那样?
我想这样做:
class A {
public $var1 = date('U');
}
Run Code Online (Sandbox Code Playgroud)
但是,很明显,由于语法错误导致上述失败.
有人可以让我知道另一种方法.
我有大约100个这样的dateTime变量,因此,使用构造函数实际上并不是什么有益的,但是,我仍然在等待无论如何可能做到这一点.