小编sit*_*lge的帖子

Strtotime()不适用于dd/mm/YYYY格式

我非常喜欢这个strtotime()功能,但是用户手册没有提供支持的日期格式的完整描述.strtotime('dd/mm/YYYY')不起作用,它只适用于mm/dd/YYYY格式.

如果我有dd/mm/YYYY格式化日期,我该如何将其转换为YYYY-mm-dd?我可以通过使用explode()函数来实现,但我认为有更好的解决方案.

php

159
推荐指数
5
解决办法
30万
查看次数

PHP锁定了ip地址

我锁定了IP地址.

这是否意味着用户只能使用相同的IP地址登录?或者用户是否会注销并且必须重新登录才能获得新会话?

if (isset($_SESSION['last_ip']) === false) {
    $_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR']; 
}

if ($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']){
    session_unset();
    session_destroy();  
}
Run Code Online (Sandbox Code Playgroud)

php

22
推荐指数
2
解决办法
1880
查看次数

通过IoC容器的正确方法

我身边让我的头DIIoC; 现在使用疙瘩.假设我在执行流程的早期定义了IoC

$container = new Injection\Container();

$container['config'] = function ($c) {
    return new Config($c['loader']);
};

$container['request'] = function ($c) {
    return new Request($c['config']);
};

...
Run Code Online (Sandbox Code Playgroud)

和一个路由器类 call_user_func_array

//$class = 'Dog', $method = 'woof', $this->args = ['foo', 'bar']
call_user_func_array(array(new $class, $method), $this->args);
Run Code Online (Sandbox Code Playgroud)

所以新对象在没有意识到的情况下被实例化,IoC但我仍然希望重用一些定义的服务.

class Dog
{
    public function woof($var1, $var2)
    {
        //$request = IoC service here
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 什么是传递IoC到类的正确方法(静态似乎是邪恶的...)或
  2. 是否有必要传递容器并存在其他方法/概念?

阅读一些不错的文章,但无法弄清楚

更新

我这样做的邪恶方式是定义另一个保存IoC …

php oop dependency-injection inversion-of-control

14
推荐指数
1
解决办法
1391
查看次数

简单页面上的高负载平均zf2 +学说

我使用ZendFramework2和Doctrine来启动我的项目.我的CPU显示httpd请求的高使用率.我启用opcache了文件缓存和memcacheDoctrine.

知道为什么它的平均负载可能接近5.0吗?我把ZendFramework2 放在die('test1')里面onBootstrap一次,而另一次放在我die('test')之前.

die('test2')
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
Run Code Online (Sandbox Code Playgroud)

我的Apache工作台显示,当框架加载时没有任何连接到数据库或转到任何控制器它的速度要慢5倍.为什么zf2表现得像这样,什么可能是一个可能的解决方案来规范它的行为?

[问题更新]

我用Xdebug和Webgrind进行了分析,发现像bootstrap这样的进程占很高的比例

(Application\Module-> onBootstrap)

在bootstrap我有这行代码

        //...
        $eventManager->attach(MvcEvent::EVENT_ROUTE, function($e) use ($blacklistForNormalUser, $auth) {
        $match = $e->getRouteMatch();

        // No route match, this is a 404
        if (!$match instanceof RouteMatch) {

            return;
        }

        // Route is whitelisted
        $name = $match->getMatchedRouteName();

        if (!in_array($name, $blacklistForNormalUser)  ) {
            return;
        }

        // User is authenticated
        if ($auth->hasIdentity() ) {
            return;
        }

        // Redirect to the user login page, …
Run Code Online (Sandbox Code Playgroud)

php apache zend-framework doctrine-orm zend-framework2

10
推荐指数
1
解决办法
3293
查看次数

php7中的错误和异常处理

最近搬到了php7.发生以下错误:

argument 1 passed to MyClass\Throwable::exceptionHandler() must be an instance of Exception, instance of Error given
Run Code Online (Sandbox Code Playgroud)

和各自的班级

namespace MyClass;

class Throwable
{
    public function exceptionHandler(\Exception $exception)
    {
        //logic here
    }
}
Run Code Online (Sandbox Code Playgroud)

正如文档中所述

现在通过抛出错误异常来报告大多数错误.

这是否意味着我必须为异常处理程序提供一个Error或更普遍的实例Throwable

php error-handling exception-handling

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

找不到"GuzzleHttp\Client"类

我第一次使用BOTH GuzzleCodeigniter 3.0.我也承认我第一次使用php命名空间.

我试图根据文档中提供的示例使用Guzzle做一个非常简单的get请求.(Guzzle文档没有提及codeigniter).

Guzzle文件位于application/class/guzzle

这是我非常简单的控制器

public function indey () {

        $data = array();
        $data['main_content'] = "hiview";
        $data['title'] = "Data Analyzer - Welcome";
        $data['xas'] = $this->guzzler();
        $this->load->view('template', $data);
    }

    private function guzzler() {
        $client = new GuzzleHttp\Client;
        $response = $client->get('http://guzzlephp.org');
        return $response;
    }
Run Code Online (Sandbox Code Playgroud)

这是我的简单看法

    <div class="row">
        <div class="col-xs-12">
             <h1>Hi</h1>
        </div>
    </div>
    <div class="row">
        <div class="col-xs-12">
            <h1><?php var_dump($xas); ?></h1>
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误

遇到PHP错误严重性:错误消息:找不到类'GuzzleHttp\Client'文件名:controllers/hello.php行号:22 Backtrace:

php codeigniter guzzle

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

如何使用CMake post_build执行shell脚本?

如何使用CMake执行shell脚本?应该运行的命令应该my_script在构建之后执行.该CMakeLists.txt

cmake_minimum_required(VERSION 3.0)

project(abc)

include_directories("/usr/lib/avr/include")

set(CMAKE_CURRENT_SOURCE_DIR /home/user/Desktop)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmcu=atmega8")
set(SOURCE_FILES main.c)

add_executable(abc ${SOURCE_FILES})

#not working ----->
add_custom_command(TARGET abc
        POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E my_script
        )
Run Code Online (Sandbox Code Playgroud)

免责声明

是的,在这里,这里,这里等有类似的问题; 然而,他们没有给我一个清晰的愿景如何实现这一目标.

c linux cmake

7
推荐指数
1
解决办法
7110
查看次数

PHP MVC结构放置自己的类

我刚开始看一下MVC模式.我的问题是:

我将把我的其他类文件(数据库,用户,记录器,邮件程序等)放在哪里?我应该为他们创建一个新目录libs吗?

我应该Controllermodel函数内部实例化类吗?

<?php

class Controller {
    protected function model($model) {
        require_once('../app/models/'. $model .'.php');

        return new $model();
    }

    protected function view($view, $data = []) {
        require_once '../app/views/'. $view .'.php';
    }
}
Run Code Online (Sandbox Code Playgroud)

php model-view-controller structure

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

安全地将多个MySQL用户合并到%

最近在Linux机器上管理我的MySQL(5.5.41)并决定删除/合并MySQL最初创建的root用户.

引用MySQL 5.5文档(这里也是很好的文章)

在Unix上,每个root帐户都允许来自本地主机的连接.可以通过指定主机名localhost,IP地址127.0.0.1,IPv6地址:: 1或实际主机名或IP地址来建立连接.

user表如下

+-----------+------------------+-------------------------------------------+
| Host      | User             | Password                                  |
+-----------+------------------+-------------------------------------------+
| localhost | root             | *ABC...                                   |
| lamp      | root             |                                           |
| 127.0.0.1 | root             | *ABC...                                   |
| ::1       | root             |                                           |
| localhost | john             | *EFG...                                   |
| lamp      | john             |                                           |
| 127.0.0.1 | john             | *EFG...                                   |
| ::1       | john             |                                           |
+-----------+------------------+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

它也设置为仅侦听localhost bind-address …

mysql database linux config

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

构造函数内部的逻辑

内部有逻辑是一个好主意__constructor吗?

public class someClass
{
    public function __construct()
    {
        //some logic here
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我认为还可以。但是,此reddit评论表明相反。

php oop constructor design-patterns class

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

如何在vim工作流程中找到反模式?

vim反模式上有很多资源,虽然我知道存在的缺陷但我确信我并没有尽可能高效地完成所有工作.

在vim工作流程中跟踪反模式/效率低下的最佳方法是什么?

vi vim

5
推荐指数
0
解决办法
1650
查看次数

推进 - 检索所有表格

我想使用propel来获得所有模式表的输出.引用特定时TableMap

$users = UsersTableMap::getTableMap();
$map = $users->getDatabaseMap();
$tables = $map->getTables(); //yields an object, holds only Users table
Run Code Online (Sandbox Code Playgroud)

有没有办法使用特定的表(例如Users),但有更通用的方法?这里有一个过时的问题,面临同样的问题.

我应该进行自定义查询还是解析schema.xml以检索所有表?

更新

下面给出的一些解决方案作为答案产生空数组

$map = Propel::getServiceContainer()->getDatabaseMap(); //w & w/o string argument
$tables = $map->getTables(); //an empty array
Run Code Online (Sandbox Code Playgroud)

php oop orm propel

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

Apache重写规则不起作用

基本的重写规则不起作用,我不知道为什么.这是我的hanalulu.conf:

<VirtualHost *:80>

ServerName hanalulu.localhost
DocumentRoot /var/www/hanalulu/public
DirectoryIndex index.php

<Directory />
    AllowOverride all
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

RewriteEngine on
RewriteRule ^a.html$ b.html

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我在hosts文件中添加了一个额外的行并通过后启用了该站点sudo a2ensite.重新启动的Web服务器:hanalulu.localhost/a.html请求a.html而不是b.html.

问题是什么?

apache mod-rewrite url-rewriting

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