小编ser*_*dev的帖子

在PHP中是否有用于数据库访问的单例的用例?

我通过PDO访问我的MySQL数据库.我正在设置对数据库的访问权限,我的第一次尝试是使用以下内容:

我想到的第一件事是global:

$db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'root', 'pwd');

function some_function() {
    global $db;
    $db->query('...');
}
Run Code Online (Sandbox Code Playgroud)

这被认为是一种不好的做法.一点点搜索后,我结束了与Singleton模式,其

"适用于需要单个类实例的情况."

根据手册中的示例,我们应该这样做:

class Database {
    private static $instance, $db;

    private function __construct(){}

    static function singleton() {
        if(!isset(self::$instance))
            self::$instance = new __CLASS__;

        return self:$instance;
    }

    function get() {
        if(!isset(self::$db))
            self::$db = new PDO('mysql:host=127.0.0.1;dbname=toto', 'user', 'pwd')

        return self::$db;
    }
}

function some_function() {
    $db = Database::singleton();
    $db->get()->query('...');
}

some_function();
Run Code Online (Sandbox Code Playgroud)

当我能做到这一点时,为什么我需要相对较大的课程呢?

class Database {
    private static $db;

    private function __construct(){}

    static function get() …
Run Code Online (Sandbox Code Playgroud)

php oop singleton design-patterns

136
推荐指数
7
解决办法
4万
查看次数

<canvas>元素的最大大小

我正在使用一个画布元素,其高度6001000像素,宽度为几十或几十万像素.然而,在一定数量的像素(显然未知)之后,画布不再显示我用JS绘制的形状.

有谁知道是否有限制?

在Chrome 12和Firefox 4中都进行了测试.

javascript html5 canvas

104
推荐指数
9
解决办法
7万
查看次数

如何从shell脚本获取远程文件大小?

有没有办法获得像这样的远程文件的大小

http://api.twitter.com/1/statuses/public_timeline.json
Run Code Online (Sandbox Code Playgroud)

在shell脚本?

shell filesize

64
推荐指数
5
解决办法
4万
查看次数

/ dev/random被认为是真正的随机吗?

例如,它可以用于生成一次性密钥键吗?
此外,它的来源是什么,它如何用于生成xy之间的随机数?

linux random encryption

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

为什么make -j在传递的数量大于可用内核数量时表现更好?

我有一个带有超线程的四核处理器.当我使用make -j8它比make -j4(我读取Java中的核心数然后调用make -j<number of cores>)更快.

我不明白为什么make -j32make -j8我(只读Java)只有8个内核(超线程使物理内核的数量翻倍)更快.怎么可能?

gcc makefile

20
推荐指数
1
解决办法
7244
查看次数

-webkit-transition-property for translation

海.
CSS3中的翻译过渡属性是什么?我目前正在使用,all但我在iOS中遇到了一个错误,所以我想测试另一个属性.

-webkit-transform: translate(-320px, 0);
Run Code Online (Sandbox Code Playgroud)

 

-webkit-transition: ??? .5 ease-in-out;
Run Code Online (Sandbox Code Playgroud)

这里查看iOS设备的错误(水平滑动),有一种闪存.


更新:对任何感兴趣的人,我找到了一种解决方法,感谢Duopixel:

E {
    -webkit-transition: all .5s ease-in-out;
    -webkit-transform: translate3d(0, 0, 0); // perform an "invisible" translation
}

// Then you can translate with translate3d(), no bug!
document.querySelector('E').webkitTransform = 'translate3d(-320px, 0, 0)'
Run Code Online (Sandbox Code Playgroud)

css iphone debugging transform css3

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

Shell相当于PHP的preg_replace()

格雷茨人.

我正在寻找一种方法来做同样的事情,而不是PHP的preg_replace()(在shell脚本中搜索匹配正则表达式的文本并替换它).

因此,请考虑以下文件.

<a href="http://example.com/">Website #1</a>
<a href="http://example.net/">Website #2</a>
<a href="http://example.org/">Website #3</a>
Run Code Online (Sandbox Code Playgroud)

我希望得到这个:

http://example.com/
http://example.net/
http://example.org/
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?谢谢.

php regex unix bash preg-replace

8
推荐指数
1
解决办法
6654
查看次数

组织PHP项目

这是什么

这是我到目前为止所做的:

  • 核心/
    • controllers/ (包含应用程序使用的控制器)
    • models/ (包含应用程序使用的模型)
    • views/ (包含应用程序使用的视图)
    • base_controller.php (控制器每隔一个扩展)
    • base_model.php (模型每隔一个扩展)
  • 供应商/
    • phprouter/(一个简单的路由器类)
    • 疙瘩/ (一个简单的DI容器类)
  • configuration.php (包含所有应用程序配置)
  • index.php (包括配置,供应商,基本模型,基本控制器,设置DI容器并路由请求)

请参阅此处的代码:http://pastebin.com/pxUpUvv6
请注意,给定的代码只是一个示例,因此控制器,模型,视图尚未到位.此外,它可能是错误的 - 如未经测试 - 但现在无关紧要.

请求流程

  1. 客户端请求index.php.
  2. 包括配置,供应商,基本控制器,基本模型.
  3. DI容器和依赖项已初始化,我们现在可以将它们注入任何地方.
  4. 我们将控制器映射到URL,路由器完成其工作.
  5. 获取控制器(尽管这不在示例代码中,如上所述).
    • 我们做一些事情.
    • 然后该方法调用::call_model(),其中包括来自core/models /的相应模型,然后从相应的模型类调用我们使用的相同方法.
  6. 获取该模型.
    • 更多东西.
    • 然后模型调用::call_view()',其中包括core/views /的相应视图.
  7. 获取视图并将页面呈现给客户端.

仅供参考:对应

对应的控制器,模型,视图的示例:

  • 控制器Controller_Products::list()核心/控制器/ Controller_Products.php
  • 模型Model_Products::list()核心/模型/ Model_Products.php
  • 查看核心/ views/Model_Products_list.php

面临的问题

实际上,我觉得这个结构有点不舒服.Dunno,它似乎远非可扩展,可模糊......

  1. 难道只有基本的文件夹结构- core{, /controllers, /models/, …

php model-view-controller directory-structure

8
推荐指数
1
解决办法
1245
查看次数

DOMContentLoaded和DOMContentReady有什么区别?

根据MDN wiki, DOMContentLoaded当"页面的DOM准备就绪时会触发,[虽然]引用的样式表,图像和子帧可能无法加载."

怎么样DOMContentReady?它只是一个别名吗?

javascript html5 domready

8
推荐指数
1
解决办法
3431
查看次数

根据质量和弹跳系数计算球与球碰撞的速度和方向

我基于使用了以下代码

ballA.vx = (u1x * (m1 - m2) + 2 * m2 * u2x) / (m1 + m2);
ballA.vy = (u1y * (m1 - m2) + 2 * m2 * u2y) / (m1 + m2);

ballB.vx = (u2x * (m2 - m1) + 2 * m1 * u1x) / (m1 + m2);
ballB.vy = (u2y * (m2 - m1) + 2 * m1 * u1y) / (m1 + m2);
Run Code Online (Sandbox Code Playgroud)

但由于该公式是针对一维碰撞而设计的,因此显然效果不佳.

所以我尝试使用本节中的以下公式.

但问题是我不知道偏转角是什么以及如何计算它.另外,如何考虑这个公式中的弹跳系数?

编辑:我可能还不清楚.上面的代码确实有效,尽管它可能不是预期的行为,因为原始公式是针对一维碰撞而设计的.因此,我正在尝试的问题是: …

javascript html5 physics canvas

6
推荐指数
2
解决办法
7467
查看次数