相关疑难解决方法(0)

如何正确设置PDO连接

我不时会看到有关连接数据库的问题.
大多数答案不是我这样做的方式,或者我可能没有正确得到答案.无论如何; 我从来没有想过这个,因为我这样做对我有用.

但这是一个疯狂的想法; 也许我这样做是错的,如果是这样的话; 我真的想知道如何使用PHP和PDO正确连接到MySQL数据库并使其易于访问.

我是这样做的:

首先,这是我的文件结构(剥离):

public_html/

* index.php  

* initialize/  
  -- load.initialize.php  
  -- configure.php  
  -- sessions.php   
Run Code Online (Sandbox Code Playgroud)

index.php
在最顶端,我有require('initialize/load.initialize.php');.

load.initialize.php

#   site configurations
    require('configure.php');
#   connect to database
    require('root/somewhere/connect.php');  //  this file is placed outside of public_html for better security.
#   include classes
    foreach (glob('assets/classes/*.class.php') as $class_filename){
        include($class_filename);
    }
#   include functions
    foreach (glob('assets/functions/*.func.php') as $func_filename){
        include($func_filename);
    }
#   handle sessions
    require('sessions.php');
Run Code Online (Sandbox Code Playgroud)

我知道有更好或更正确的方法来包含类,但不记得它是什么.还没有时间去研究它,但我认为这是有道理的autoload.类似的东西......

configure.php
这里我基本上只是覆盖一些php.ini -properties并为该站点做一些其他的全局配置

connect.php
我把连接放到一个类上,所以其他类可以扩展这个...

class …
Run Code Online (Sandbox Code Playgroud)

php mysql sql pdo class

91
推荐指数
3
解决办法
9万
查看次数

注释如何在PHP中有用?

注释如何在PHP中有用?我并不是指一般的PHPDoc.

我想,我只想要一个真实世界的例子.


因此,根据@ Max的回答:注释与Abstract Factories完成相同的事情,只通过一行专门的PHPDoc. - hopeseekr 0秒前编辑

php annotations

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

谁应该处理复杂查询,数据映射器或服务层中的条件?

这个问题在清除我对此事的困惑方面做得非常好,但我很难找到关于服务层的确切限制应该是什么的可靠来源.

对于这个例子,假设我们正在处理书籍,我们希望通过作者获得书籍.本BookDataMapper可以有一个通用的get()接受条件(S),如书的唯一标识符,作者姓名等这个实现是相当微不足道的(逻辑)方法,但如果我们希望有需要更复杂的查询多个条件是什么?

让我们说我们希望得到某位作者在特定出版商下撰写的所有书籍.我们可以扩展BookDataMapper->get()方法来解析多个条件,或者我们可以编写一个新的方法,如BookDataMapper->getByAuthorAndPublisher().

是否最好让服务层直接调用这些[更具体]的方法,或者在调用BookDataMapper->get()多个条件传递的更通用方法之前解析条件?在后一种情况下,服务层将执行更多逻辑"繁重的工作",使数据映射器相当简单.前一个选项会将服务层几乎完全缩减为中间人,将条件逻辑留给数据映射器等方法BookDataMapper->getByAuthorAndPublisher().

让服务层解析条件的一个明显问题是某些域逻辑泄漏出数据映射器.(这在此处的链接问题中进行了解释.但是,如果服务层要处理条件,则逻辑不会使其脱离模型层;控制器将无论如何调用$book_service->getByAuthorAndPublisher().

php domain-driven-design datamapper

17
推荐指数
2
解决办法
3253
查看次数

在PHP控制器中调用模型功能的最佳选择

我正在使用PHP构建自定义MVC框架.我的问题是当我想通过控制器类访问任何模型类时.我看到这样做的一种方法是通过使用魔术方法(如get和set)的注册表设计模式,尽管PHP get和set被一些人认为是不好的做法.我已经读过通过容器完成的依赖注入,但是我不能看到它有效地工作,因为容器必须调用模型,否则它必须包含会破坏MVC目的并创建大型超类的模型.单身人士被视为不良做法.我提到的方法是否有任何解决方案或改进.这可能只是我对PHP需求改进的理解和了解.

目前我有这个:router.php(通过GET变量加载控制器

 <?php

class router {



function __construct() {

    if (file_exists("controller/".$_GET['url']."Controller.php"))  {


       function __autoload($controller) {

           $controlinclude = "controller/".$controller.".php";
            include $controlinclude;

      }
       $control = $_GET['url']."Controller";
        new $control();


    }
    else    {

        // throw exception
    }

}

}
?>
Run Code Online (Sandbox Code Playgroud)

希望这样做

php oop model-view-controller dependency-injection

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