2013-03-16 11 views
6

W kilku projektach nie potrzebujemy bazy danych, więc jak skonfigurować cakephp na komputerze lokalnym bez modyfikacji w konfiguracji bazy danych? Teraz, co zrobiłem ... Stworzyłem bazę danych i zmodyfikowałem plik konfiguracyjny. Ale moja baza danych nie ma tabeli, to tylko marnotrawstwo bazy danych .... więc sugeruj lepszy sposób na zrobienie tego.Jak skonfigurować cakephp bez bazy danych?

góry dziękuję ..

Odpowiedz

0

Możesz zostawić domyślne ustawienia datasourse pustych w database.php a dla modeli używanych, należy określić, że nie potrzebują odpowiedniej tabeli w DB jak następuje:

class MyModel extends AppModel { 
    public $useTable = false; 
} 
4

Z CakePHP 2.3.x po prostu używam pustego łańcucha jako źródła danych w konfiguracji bazy danych i działa dobrze.

Konfiguracja bazy danych (app/config/database.php) jest prawie pusty, to wygląda to tak:

class DATABASE_CONFIG { 
    public $default = array(
     'datasource' => '', 
    ); 
} 

Trzeba powiedzieć AppModel nie używać tabel DB, w przeciwnym razie będziesz Wystąpił błąd: "Nie można znaleźć klasy źródła danych". Nie wystarczy ustawić $ useTables tylko w modelach potomnych.

class AppModel extends Model { 
    public $useTable = false; 
} 

Nie doświadczyłem jeszcze żadnych problemów z tym.

+5

Witam, klasa DATABASE_CONFIG { \t publicznego $ default = array ( \t \t \t \t 'DataSource' => '', \t \t \t \t); } to mój plik bazy danych. Również public $ useTable = false jest ustawiony, nadal daje błąd. "Nie można znaleźć klasy źródła danych." –

2

CakePHP rzeczywiście spróbuje połączyć się z bazą danych bez względu na to, że nie użyć tabeli więc za pomocą tego

class MyModel extends AppModel { 
    public $useTable = false; 
} 

będzie to tylko pomyłka, tworzenie aplikacji na CakePHP jest bułka z masłem. Oto kilka kroków, które należy wykonać, aby rozpocząć tworzenie bez bazy danych.

  1. Tworzenie fałszywego źródła dbo

utworzyć plik DboFakeDboSource.php w app/model/DataSource/DBO/i umieścić następujący kod w nim

class DboFakeDboSource extends DboSource { 
    function connect() { 
    $this->connected = true; 
    return $this->connected; 
    } 
    function disconnect() { 
    $this->connected = false; 
    return !$this->connected; 
    } 
} 
  1. Ustaw domyślne połączenie

Następnym krokiem jest poinformowanie cakephp o użyciu Źródło dbo domyślnie. Idź i zmień domyślne połączenie w database.php być jak ten

var $default = array(
    'driver' => 'FakeDboSource' 
); 
  1. Dostrajanie modelu

Trzecim krokiem jest, aby mieć pewność, że $ useTable = false; jest zawarty w każdym modelu, więc dodaj go w AppModelu.php

+0

Nie działa dla cakephp-2.3 – sumitkanoje

+0

Powinieneś użyć App :: uses ("DboSource", "Model/Datasource"); w modelu, inne mądre daje błąd [nie znaleziono klasy "klasy" DboSource] – sumitkanoje

+0

nie jestem jeszcze pewien, ponieważ to rozwiązanie zostało przetestowane na Cakephp 2.0 –

Powiązane problemy