小编Nat*_*ams的帖子

Codeigniter使用什么设计模式?

相当简单的问题:

我知道Codeigniter是一个MVC框架 - 然而Codeigniter使用的设计模式是什么?

从第一眼看它似乎是Facade,但我可能是错的.

编辑:

也许我应该为那些不使用它的人描述Codeigniter.
在Codeigniter中,您有一个Controller和Model的概念,每个都有自己独立的文件夹.在每个文件夹中创建一个文件:cart.php:

<?php

class Cart {
 //...
}
?>
Run Code Online (Sandbox Code Playgroud)

然后你也可以有一个模型:

<?php

class User {
    function login(){...}
}
?>
Run Code Online (Sandbox Code Playgroud)

在Cart类中,只需使用$ this-> user-> login()即可在User中使用登录功能

我发现这很有趣,因为框架使用User对象的对象而程序员没有.

php design-patterns codeigniter

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

用于分离辅助监视器的C++应用程序

我正在尝试创建一个应用程序来从Windows框中分离辅助监视器(长篇故事).

以下是我用作基础的Microsoft示例代码:http: //support.microsoft.com/kb/308216/en-us

这是我的代码:

#include <iostream>
#include <windows.h>

void DetachDisplay()
{
    BOOL            FoundSecondaryDisp = FALSE;
    DWORD           DispNum = 0;
    DISPLAY_DEVICE  DisplayDevice;
    LONG            Result;
    TCHAR           szTemp[200];
    int             i = 0;
    DEVMODE   defaultMode;

    // initialize DisplayDevice
    ZeroMemory(&DisplayDevice, sizeof(DisplayDevice));
    DisplayDevice.cb = sizeof(DisplayDevice);

    // get all display devices
    while (EnumDisplayDevices(NULL, DispNum, &DisplayDevice, 0))
        {
        ZeroMemory(&defaultMode, sizeof(DEVMODE));
        defaultMode.dmSize = sizeof(DEVMODE);
        if ( !EnumDisplaySettings((LPSTR)DisplayDevice.DeviceName, ENUM_REGISTRY_SETTINGS, &defaultMode) )
                  OutputDebugString("Store default failed\n");

        if ((DisplayDevice.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) &&
            !(DisplayDevice.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE))
            {
            DEVMODE    DevMode;
            ZeroMemory(&DevMode, sizeof(DevMode));
            DevMode.dmSize …
Run Code Online (Sandbox Code Playgroud)

c++ winapi windows-7

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

Python LDAP和Active Directory问题

我将尝试包括尽可能多的细节,但请考虑以下情况:

对于隐私问题,可以说我有一个Active Directory基础结构,如下所示:

microsoft.com
和一些子域:
csharp.microsoft.com
vb.microsoft.com

所有用户帐户都存储在microsoft.com。

我从以下代码开始:

import ldap
ldap.set_option(ldap.OPT_REFERRALS,0)
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT,ldap.OPT_X_TLS_NEVER)
Run Code Online (Sandbox Code Playgroud)

(我知道我可能应该拥有该域的证书,但是您可以怎么做)

然后,我进行如下连接:

conn = ldap.initialize("ldaps://microsoft.com:636")
conn.simple_bind_s("user","pass")
Run Code Online (Sandbox Code Playgroud)

在我的脚本中,我正在搜索用户帐户,并且使用以下搜索:

result_id = conn.search("DC=microsoft,DC=com",
                                ldap.SCOPE_SUBTREE,
                                "(&(CN=gates)(!(objectClass=contact)))",
                                None)
result_type,result_data = conn.result(result_id,0)
Run Code Online (Sandbox Code Playgroud)

好的,这很有效。...大部分时间。
当它起作用时,我会得到以下效果:

[("CN=gates,OU=Users,DC=microsoft,DC=com", {'sAMAccountName':['gates']}])
Run Code Online (Sandbox Code Playgroud)

但是,似乎随机得到的结果如下:

[(None, ['ldaps://csharp.microsoft.com/DC=csharp,DC=microsoft,DC=com'])]
Run Code Online (Sandbox Code Playgroud)

虽然结果很合理-csharp.microsoft.com上不存在门,而microsoft.com DC上存在门-这仍然令人非常困惑,因为我印象是使用OPT_REFERRALS设置为0会告诉Python LDAP模块不要使用推荐。为了使事情变得更有趣,有时我还会得到如下结果:

[(None, ['ldaps://ForestDnsZones.microsoft.com/DC=ForestDnsZones,DC=microsoft,DC=com'])]
Run Code Online (Sandbox Code Playgroud)

所以我的问题-我做错了什么吗?

另外,还建议如果我使用“ OU = Users,DC = microsoft,DC = com”之类的搜索路径,而不是仅从根目录(“ DC = microsoft,DC = com”)中搜索LDAP客户端模块不会尝试使用引荐-这是准确的吗?

编辑

事实证明,该问题与LDAP不相关,而与WSGI配置错误有关。使用WSGIDaemonProcess解决了我们遇到的交叉污染问题。

python active-directory

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

在函数中包含函数原型的目的是什么?

我承认我没有跟上最新的 C/C++ 版本,但我想知道为什么在函数中包含函数原型是有效代码?它与 lambda 的使用有关吗?

这是示例代码 - 这将在 Visual Studio 2019 和 g++ 5.4.0 上编译/运行

int main()
{
    int func(bool test);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++

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

游戏引擎开发

我将重新创建一个我创建的游戏引擎.这次我想做得对,所以我对设计模式进行了一些研究,并尝试将各个部分组合在一起以实现我的目标.游戏引擎的想法很简单,但与此同时我不想牺牲可用性.

这是我正在思考的蓝图,让我知道你是否能看到任何垮台,尤其是可扩展性:

class Object
{
    public:
        string name;
}

class Object3D : public Object
{
    public:
        int x;
        int y;
        int z;
}

class Object2D : public Object
{
    public:
        int x;
        int y;
}

class cube : public Object3D
{
    cube() : x(0), y(0), z(0), name("cube") {}
}

class square
{
    ...
}

int main()
{
    SGL Engine(paramters);

    c = cube();
    s = square();

    Engine->Lib3D->AddCube(&c, "cube");
    Engine->Lib2D->AddSquare(&s, "square");
    Engine->Input->keyboard(&kbevent);
    while(Engine->running())
    {
        if (x)
            Engine->Draw("cube");
        else
            Engine->Draw("square");
    }
}

void …
Run Code Online (Sandbox Code Playgroud)

c++

-2
推荐指数
1
解决办法
1380
查看次数