小编Gab*_*tos的帖子

服务定位器,依赖注入(和容器)和控制反转

我已经编程了一段时间但从未对理解每个概念的含义感兴趣,我可能正在使用各种编程概念,但却不知道它.

服务定位器:对我来说,是指通过减少代码量来加快开发速度的快捷方式记录.一个问题是:可能Locator仅引用名称空间/类,或者我可以拥有变量注册表?

以下是我对它的理解:

$locator = new ServiceLocator()
$locator->set('app', new System\Application());
$locator->set('db', new System\Pdo());

// Get the objects
$locator->get('db')->connect();
$locator->get('app')->run();
Run Code Online (Sandbox Code Playgroud)

依赖注入(和依赖注入容器):在对象内注入对象,无论工厂模式如何,都可以更快地访问这些对象.和DI容器?

以下是我对它的理解:

$app = new System\Application(System\Config::load());
Run Code Online (Sandbox Code Playgroud)

控制反转:不了解这种设计模式(或者理解但不知道我做的是IoC)

然后,在理论上(最好用简单的例子),这些概念中的每一个意味着什么?我是正确的,还是有什么不对/可以改进?

谢谢!

php design-patterns dependency-injection inversion-of-control service-locator

12
推荐指数
2
解决办法
5342
查看次数

具有PSR-4自动加载功能的Composer:来自命名空间的类不加载

我有以下项目结构:

- root
|- src <- Application specifc source
  |- [...]
|- tests
  |- [...]
|- Vendor
  |- myusername <- shared packages for all projects
    |- src
      |- MyNamespace
        |- File.php
  |- autoload.php
  |- test.php
|- composer.json
Run Code Online (Sandbox Code Playgroud)

composer.json 已经有PSR-4条目:

"autoload": {
     "psr-4": {
         "MyNamespace\\":"myusername/src"
     }
}
Run Code Online (Sandbox Code Playgroud)

/Vendor/test.php

<?php
require 'autoload.php';

$file = new MyNamespace\File();
echo $file->isDone();
Run Code Online (Sandbox Code Playgroud)

Vendor/myusername/src/MyNamespace/File.php

<?php
namespace MyNamespace;

class File
{
    public function isDone()
    {
        return 'Done!';
    }
}
Run Code Online (Sandbox Code Playgroud)

但我总是得到致命的错误 Fatal error: Class 'MyNamespace\File' not found in [...] …

php composer-php psr-4

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

Symfony多个站点

我有一个Symfony2核心,用于域A和域B.但是,如果我更新核心,我需要更新两次,因为我不知道如何只配置一个核心,多个域与他们的配置/数据库.

建议?

php symfony

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

哪里可以找到Symfony2清洁骨架?

我需要一个干净的骨架,没有默认的演示和配置,以了解所有配置过程,从零开始,以及Symfony 2的捆绑创建.

谢谢!

php skeleton-code symfony

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

PHP:查询结果如何存储在mysqli_result中

当我对数据库进行查询并在mysqli_result中检索结果时,内存使用量非常小.但是,当我将查询结果中的所有行提取到关联数组时,内存使用量变得非常高.

<?php
    require_once("../config.php"); //db connection config
    $db = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_DBASE);

    $query ="select * from table_name";
    if($r = $db->query($query)){
    echo "MEMORY USAGE before :  ". memory_get_usage()."<br><br>";
    $rows = array();
    while($row = $r->fetch_assoc()){

        $rows[]= $row;
    }
    echo "MEMORY USAGE after :  ". memory_get_usage()."<br><br>";


    //before: 660880
    //after:  114655768
    // # of records: around 30 thousands
?>
Run Code Online (Sandbox Code Playgroud)

对我来说,存储这么多结果非常有意义,但我只是想知道mysqli_result是如此之小.每次调用fetch_assoc时都不能向dbase查询结果.那么结果存储在内存中的哪个位置.

php memory mysqli

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

ZF2:依赖注入,MVC,配置和引导程序

我对Zend Framework 2有疑问:

我有图书馆/系统和图书馆/ Zend.系统是我的自定义库,我想配置它(路由,模块等,并将用户重定向到正确的模块,控制器和/或操作).

我不想在每个application/modules/ModuleName/Module.php文件中执行此操作.因此,我的库/系统可以完成与应用程序配置相关的所有操作.

php zend-framework2

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

如何自定义ckeditor的工具栏

我正在使用ckeditor并希望自定义工具栏和文本输入区域作为两个句子之间的差距.我无法找到toolbar.js或config.js,我应该在哪里进行更改..

我如何自定义上述两者

jquery ckeditor

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

mysql查询join/inner join

我在我的mysql中有两个表我想根据两个表的组合查询提取结果.我尝试加入以及内部联接但没有成功的结构

tableA是

id   userid   topic

1     34       love
3     64       friendship
35    574      romance
32    253      games
95    633      football
54    26       cricket
648    63      music
Run Code Online (Sandbox Code Playgroud)

tableB是

id    location     username
34      Australia    krkrff
64      india        dieiei
574     pakistan     frkfrf
253     japan        frfffrk
633     india        ifirf
26      Australia    riiri
63      Australia    frffjrr
Run Code Online (Sandbox Code Playgroud)

请注意,在tableA中,userid和TableB id相同.both反映相同用户的数据.我想通过过滤tableB中的location列来显示tableA数据.假设我想显示tableB的主题并且用户属于澳大利亚那么它应该给出输出:爱板球音乐

你可以在表B中看到34,26和63属于澳大利亚所以输出是这样的.如果位置是印度,那么将是outpput

友谊和football.please告诉如何编写SQL查询.

mysql join inner-join left-join

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

页面完成后的元素高度

我有一个绝对的div,一个父母div.如何根据绝对div定义父级的高度,知道我有需要一些时间加载的图像?

CSS:

#parent {
    overflow:hidden;
    width:100%;
}
.absolute {
    overflow:hidden;
    width:100%;
    height:100%;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="parent" style="height:[HEIGHT OF CHILDREN]">
    <div id="absolute1" class="absolute">
        [LOTS OF CONTENT WHICH MAKE A VARIABLE HEIGHT, INCLUDING IMAGES WHICH TAKE SOME TIMES TO LOAD HERE]
    </div>
    <div id="absolute2" class="absolute">
        [LOTS OF CONTENT WHICH MAKE A VARIABLE HEIGHT, INCLUDING IMAGES WHICH TAKE SOME TIMES TO LOAD HERE]
    </div>
</div>
<a href="#absolute1">SAMPLE LINK 1</a>
<a href="#absolute2">SAMPLE LINK 2</a>
Run Code Online (Sandbox Code Playgroud)

JS:

jQuery(document).ready(function($) {
    $('a').bind('click', function(e) { …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

3
推荐指数
1
解决办法
3879
查看次数

Jquery Fullcalendar标题

例如,我可以如何格式化周文本,Dom 11/25我喜欢在哪里展示Dom 25/11.我无法从文档中找到解决方案.

在此输入图像描述

jquery fullcalendar

3
推荐指数
1
解决办法
1320
查看次数