슬림 프레임 워크에 대한 좋은 소식을 듣고 있습니다. 튜토리얼의 어느 쪽도 MySQL 정보를 놓을 주소를 제외하고는.슬림 프레임 워크에서 MySQL 연결 정의하기?
나는 $dbCon = getConnection();
등을 참조하지만 여기서 나는 이름/PW/DB/등 호스트를 정의합니까?
슬림 프레임 워크에 대한 좋은 소식을 듣고 있습니다. 튜토리얼의 어느 쪽도 MySQL 정보를 놓을 주소를 제외하고는.슬림 프레임 워크에서 MySQL 연결 정의하기?
나는 $dbCon = getConnection();
등을 참조하지만 여기서 나는 이름/PW/DB/등 호스트를 정의합니까?
당신은 내가 당신이의 모든 인스턴스에로드 된 가져옵니다 config.php
파일에 자격 증명을 저장이 MVC 패턴으로 큰 성공을했다
function getConnection() {
$dbhost="yourdbhost";
$dbuser="yourdbuser";
$dbpass="yourdbpass";
$dbname="yourdb";
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbh;
}
소스 코드에 자격 증명이 생기기 때문에 개인적으로이 방법이 마음에 들지 않습니다. 나는 당신의 소스 컨트롤에 의해 무시되는 웹 루트 외부의 로컬 설정 파일로 자격 증명을 옮길 것이다. – ForrestLyman
@ForrestLyman에 동의합니다. 데이터베이스 자격 증명에는 아무 것도 없습니다. – dSebastien
(예 : index.php를) 파일에서 함수를 정의 할 수 있습니다 모델 : https://github.com/revuls/SlimMVC
이러한 자격 증명을 로컬 구성 파일에 보관하는 것이 가장 좋습니다. 웹 루트 외부에 configs 폴더를 추가하고 local.php 구성 파일을 추가합니다.
....
/configs
local.php
/public
/vendor
....
당신은 당신이 좋아하는 무엇이든을 구성하지만, 여기에 수있는 DB는 :
는<?php
// configs/local.php
return array(
'db' => ['user' => 'root', 'password' => 'root']
);
는 그런 다음 응용 프로그램에서 파일을 포함하고 연결 작성 :
// public/index.php
$config = include(__DIR__ . '/../configs/local.php');
$db = new PDO("mysql:host=localhost;dbname=dbname", $config['db']['user'], $config['db']['user']);
$app->get('/', function() use ($app, $db) {
// do something with your db connection
});
당신이 PDO를 구성 할 수 있습니다 외부 수업 :
class Connection
{
protected $db;
public function Connection()
{
$conn = NULL;
try{
$conn = new PDO("mysql:host=YOUR_HOST;dbname=DB_NAME;charset=utf8;collation=utf8_unicode_ci", "USER_DB", "PASS_DB");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
$this->db = $conn;
}
public function getConnection()
{
return $this->db;
}
}
그런 다음 슬림 (PHP는 객체 지향)에 :
<?php
class Proxy
{
require_once 'Connection.php';
// init Slim
private $conn = NULL;
// Api Rest code...
# getConnection
public function getConnection(){
if(is_null($this->conn)){
$this->conn = new Connection();
}
return $this->conn->getConnection();
}
또는 PHP는 더 OO는 :
<?php
require_once 'Connection.php';
// init Slim
$conn = NULL;
// Api Rest code...
# getConnection
function getConnection(){
global $conn;
if(is_null($conn)){
$conn = new Connection();
}
return $conn->getConnection();
}
슬림은 내 지식에 대한 데이터베이스 연결을 제공하지 않습니다. – cmorrissey
Slim은 데이터베이스 액세스 권한이 없지만 'orm 's'를 사용할 수 있습니다. [여기에 PHPactiveRecord '와 함께 사용하는 예제입니다.] (http://silentworks.co.uk/blog/development/using-phpactiverecord-with-slim-framework.html). –