小编Sho*_*hoe的帖子

CodeIgniter基类,为什么呢?

许多框架决定使用这种方法:强制用户扩展基本控制器类(如果要创建新控制器)或扩展基础模型类(如果要创建新模型).

我们来看看CodeIgniter控制器基类的代码:

/**
 * Constructor
 */
public function __construct()
{
    self::$instance =& $this;

    // Assign all the class objects that were instantiated by the
    // bootstrap file (CodeIgniter.php) to local class variables
    // so that CI can run as one big super object.
    foreach (is_loaded() as $var => $class)
    {
        $this->$var =& load_class($class);
    }
    $this->load =& load_class('Loader', 'core');

    $this->load->initialize();

    log_message('debug', "Controller Class Initialized");
}
Run Code Online (Sandbox Code Playgroud)

它有什么作用?好吧,就我所知,它只是允许我们使用$this->load->...例如.

让我们来看看__get()模型基类的神奇方法:

/**
 * __get
 *
 * Allows models to access CI's …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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

现在是C++ CGI

http://www.atmel.com/Images/compiler.jpg

背景

我已经有5年的PHP背景了,在上个月我一直忙于找到一种用C++做网络的方法(即使我知道这是幼稚和愚蠢的,我觉得C++是唯一真正的编程语言而且我有这种对它的宗教信仰让我爱它而且只有它.

我的CGI之旅

我发现了几篇博客文章(主要是2000 - 2003年),讨论并在这里进行了一些聊天讨论.这就是我收集的内容:

  • PHP是为Web而设计的,而C++是一种通用的语言.
  • PHP不一致,并且在网络上有很多仇恨
  • PHP是最常见和支持的脚本语言
  • CGI是一种非常古老而通用的技术,在PHP之前使用过(PHP1实际上是C的CGI库)
  • 在CGI(vs PHP)中,我们fork-exec遇到了每个进程的执行问题,这有点减慢了一切
  • ^这就是FastCGI的用途
  • 对于一些常见的数学运算,C++比PHP快200倍(因为PHP是一种解释语言)
  • 需要性能的大型网站不使用纯PHP(Facebook使用HipHop,这是与C++相关的东西,在Google上有几个关于它用Perl,C++,C或其他语言编写的传言,但PHP)
  • PHP的学习和编写速度更快
  • C++有很糟糕的字符串操作方法
  • 有一些好的(主观)库用于C++ CGI,如wT(诙谐).
  • 有些人只是告诉我尽可能远离PHP

真实的问题

今天我必须决定使用PHP或CGI.而且我在问你:

  1. CGI在2013年死了吗?(是的,我知道之前有人问过)
  2. 既然每个人都需要性能,并且考虑到我有时间花1年时间为网络构建一个可靠的C++库,而且我不喜欢简单的事情,那么现在使用CGI(或FCGI)有什么缺点(相比之下)到较新的技术)
  3. 有没有更有效的方法来使用C++构建网站
  4. 与FastCGI有什么关系?
  5. FastCGI得到广泛支持吗?
  6. 考虑到我必须在单个网站/服务器/数据库周围构建Web工具,Web应用程序,iphone应用程序,PC应用程序和mac应用程序的项目,我是否可以将C++网站中的一些代码重用于我的应用程序?(例如数据库交互)?

php c++ cgi fastcgi

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

C++基于两个数据成员对对象进行排序

我知道你可以在a中插入一个用户定义的类std::vector,然后重载排序机制,以便比较特定的数据成员.但是,您如何对具有两个数据成员的std::vector<MyClass>位置MyClass进行排序,并且您希望在第二个数据成员上添加"第二级"排序?那么排序数据成员a和哪里a相等,然后排序数据成员b

c++ sorting stl vector

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

使用CryptoAPI使用不可导出的私钥解密

我在windows密钥库中创建了RSA密钥对.

我成功加密了数据(对称密钥):

HCERTSTORE hstore = ::CertOpenSystemStore(NULL, L"TestStore");
PCCERT_CONTEXT pctxt = ::CertFindCertificateInStore(hstore, X509_ASN_ENCODING, NULL, 

CERT_FIND_SUBJECT_STR, L"My Test Keys", NULL);

HCRYPTPROV hprovider = NULL;
if(!::CryptAcquireContext(&hprovider,
            NULL,
            MS_ENHANCED_PROV,
            PROV_RSA_FULL,
                    NULL/*CRYPT_NEWKEYSET*/))
{
   DWORD err = ::GetLastError();
   return 0;
}

HCRYPTKEY hkey = NULL;
if(!::CryptImportPublicKeyInfo(hprovider, 
                X509_ASN_ENCODING,
                &pctxt->pCertInfo->SubjectPublicKeyInfo,
                &hkey
                ))
{
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我使用CryptEncrypt()和HCRYPTKEY.


接下来我想用私钥解密数据,但它不可导出.我见过的所有例子都包括导入密钥.

如何在不导出密钥的情况下解密数据?

c++ encryption keystore cryptoapi

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

有没有办法使本地分支不可变?

我非常愚蠢,有时我将“功能分支”合并到错误的master分支而不是develop分支中,这当然会导致痛苦和痛苦。

由于这是第二次发生这种情况,我想知道是否有办法使分支在本地不可变。

我已经尝试过使用此预提交挂钩来阻止我直接在所述分支上进行提交,但这并不会阻止合并,如下所示:

git checkout master
git merge wip
Run Code Online (Sandbox Code Playgroud)

有没有办法阻止对本地分支的所有可能的更改?如果不是,是否至少可以阻止更改被推送?

git branch githooks

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

无法在React上获取HTML5拖放的onDragStart事件

我正在ReactJs中创建一个基本应用程序,以实现基本的HTML5拖放功能。我面临的问题是,我的onDragStart事件没有将事件对象传递给处理程序方法。我已经参考了HTML5 Drag and Drop文档,其中展示了如何将事件对象传递给处理程序。

这是我的代码,用于为onDragStart事件实现事件处理程序。

//handler method
dragStartHandler(event) {
 console.log(event); // undefined
}

render() {
 return (
   <div draggable="true" 
    onDragStart={this.dragStartHandler(event)}></div>
 )
}
Run Code Online (Sandbox Code Playgroud)

正在调用处理程序,但没有事件对象。我的日程安排是捕获事件对象,以便我可以使用DataTransfer接口进一步将数据绑定到事件。

请帮助我了解行为。

谢谢!

更新资料

不将事件传递给dragStartHandler方法实际上是将事件传递给处理程序方法。与HTML5 DND文档中提到的方法不同,它是React绑定方法的唯一方式,似乎不适用于react。我在处理程序中得到的事件是根据html规范包装的原始Drag Event版本。这种行为使我感到困惑,因为它给出了一些Proxy对象,可能是由react创建的。

解决方案:尽管Proxy对象具有原始Drag事件的所有方法,但我后来才意识到。因此,您可以像以前一样将新的Proxy事件对象用作本机html元素,并具有所有以前的行为。

html5 drag-and-drop reactjs

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

开发强大的应用

我注意到,有一些功能,如is_int()isset()file_exists()functions_exists()这在某种程度上是非常有用的.当我编写一些代码时,我总是会想到可能发生在我网站上的所有不好的事情,但有时候我遇到的问题包括:

等等,这个变量在PHP文件中设置; 这意味着没有人能够编辑它,对吗?如果这个"用户"可以编辑它,我会遇到很多麻烦,因为它可以管理PHP文件.

要么

这真的值得继续检查应该存在的文件吗?

让我们考虑下面的例子,它本身没有意义,但会帮助我让你理解我在说什么.PS:我故意夸大了代码.

config.php文件

$doActions = true;
Run Code Online (Sandbox Code Playgroud)

的functions.php

function getID() {
    return $_COOKIE['userid'];
}

class eye {
    public static function see() {
        // gain the object the user is looking at
        return $object;
    }
}
Run Code Online (Sandbox Code Playgroud)

的index.php

class viewer {

    private $poniesSeen = 0;

    public function __construct() {
        /* Magic ponies are created here */
    }

    public function sawAPony($id) {
        if (file_exists('config.php')) {
            if (isset($doActions)) {
                if (is_bool($doActions)) {
                    if …
Run Code Online (Sandbox Code Playgroud)

php oop

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

如何检测类属性是私有还是受保护

如何在使用外部库的情况下检测类属性是私有还是受保护(仅限纯PHP)?如何检查我是否可以从课外设置属性,或者我不能?

php oop

4
推荐指数
2
解决办法
2627
查看次数

匹配具有相同值SQL的多个列

假设表中有像列akey1,bkey2,ckey3和许多喜欢它.
有没有办法搜索共同的价值

SELECT * FROM table WHERE %key% LIKE 'xyz'

除了使用多个AND,OR条件.如果解决方案是DBMS特定的,则无关紧要.

sql

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

哪个是正确的:vector <const string> OR const vector <string>?

哪个是正确的:vector<const string>或者const vector<string>?

我想创建一个std::vectorstd::stringS,我不会进行更改.但我不确定这两种方式中的哪一种更好,为什么.

c++ vector

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