codeigniter Samouczek
Rozpoczęcie pracy z Codeigniter
Szukaj…
Uwagi
CodeIgniter to framework MVC napisany w PHP i dla PHP.
Jest lekki w porównaniu do innych platform MVC, kosztem mniejszej funkcjonalności, np. Nie ma wbudowanego systemu uwierzytelniania, który mógłby być częścią innych platform.
CodeIgniter to dobry wybór frameworków dla tych, którzy zaczynają od MVC, ponieważ nie wymusza żadnych szczególnych standardów nazewnictwa i struktury kodu; ale nadaje się również do większych projektów, w których duży zakres funkcji zawartych w innych ramach może nie być potrzebny.
Wersje
Wersja | Data wydania |
---|---|
Wersja Beta 1.0 | 28.02.2006 |
Wersja 2.0.0 | 28.01.2011 |
Wersja 2.2.0 | 02.06.2014 |
Wersja 3.0.0 | 30.03.2015 |
Wersja 3.1.3 | 2017-01-09 |
Wersja to 3.1.4 | 2017-03-20 |
Wersja to 3.1.5 | 2017-06-19 |
Instalacja i konfiguracja
Środowisko Windows
- Zainstaluj XAMPP lub WAMP
- Pobierz i rozpakuj pakiet z Codeigniter.com
- Wyodrębnij cały dokument z przestrzeni serwera (katalog htdocs lub www)
Środowisko Mac
- Zainstaluj MAMP
- Pobierz i rozpakuj pakiet z Codeigniter.com
- Wyodrębnij cały dokument w przestrzeni serwera (htdocs)
Środowisko Linux
- Pobierz i rozpakuj pakiet z Codeigniter.com
- Umieść rozpakowany folder w / var / www (w WAMP) lub xampp / htdocs (XAMPP)
GitHub
git clone https://github.com/bcit-ci/CodeIgniter.git
Jeśli będziesz postępować zgodnie z systemem poprawnie, pojawi się poniższy ekran.
Podstawowy adres URL
- Przejdź do
application/config/config.php
- Zdefiniuj podstawowy adres URL jako
$config['base_url'] = 'http://localhost/path/to/folder';
Usuń index.php
z adresu URL
Konfiguracja Apache |
---|
idź do rootowania
utwórz plik htaccess
Dodaj poniższy kod
RewriteEngine on RewriteCond $1 !^(index\.php|assets|image|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Uwaga: kod .htaccess różni się w zależności od serwera hostingowego. Na niektórych serwerach hostingowych (np. Godaddy) musisz użyć dodatkowego ?
w ostatnim wierszu powyższego kodu. W odpowiednim przypadku następująca linia zostanie zastąpiona ostatnią linią:
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Konfiguracja Nginx |
---|
Otwórz plik konfiguracyjny nginx (domyślnie:
/etc/nginx/sites-available/default
)Dodaj poniższy kod
server { server_name domain.tld; root /path-to-codeigniter-folder; //you codeigniter path index index.html index.php; # set expiration of assets to MAX for caching location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ { expires max; log_not_found off; } location / { # Check if a file or directory index file exists, else route it to index.php. try_files $uri $uri/ /index.php; } location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi.conf; } }
Konfiguracja bazy danych
- Przejdź do
application/config/database.php
- Ustaw następujące zmienne konfiguracyjne.
- Gospodarz
- Nazwa Użytkownika
- Hasło
- Nazwa bazy danych
- Port
Ustaw domyślny kontroler
- Przejdź do
application/config/routes.php
- ustaw następującą wartość zmiennej konfiguracyjnej za pomocą nazwy kontrolera.
- default_controller
AutoLoad Library And Helper
- Przejdź do
application/config/autoload.php
- ustaw wartość Auto load jak
$autoload['libraries'] = array('database', 'session');
- ustaw wartość Pomocnika, taką jak
$autoload['helper'] = array('url', 'file', 'form', 'html', 'text');
Uruchom wiele aplikacji w jednym systemie CI
Codeigniter może być skonfigurowany do uruchamiania więcej niż jednego projektu bez powielania podstawowych plików CI.
Jest to możliwe poprzez podzielenie strony aplikacji CI. Na przykład weźmy projekt strony internetowej, która zawiera aplikacje front-end
i back-end
Content Management System (CMS). W takim przypadku struktura folderów CI będzie wyglądać następująco:
Struktura folderów:
├── Codeigniter
│ ├── applications
│ │ ├─ front-end
│ │ │ ├── views
│ │ │ ├── models
│ │ │ ├── controllers
│ │ │ ├── config
│ │ │ └── ...
│ │ ├─ back-end
│ │ │ ├── views
│ │ │ ├── models
│ │ │ ├── controllers
│ │ │ ├── config
│ │ │ └── ...
│ │ │
│ ├── system
│ │ ├── core
│ │ ├── database
│ │ ├── helpers
│ │ └── ...
│ │
│ ├── index.php
└ └── backend.php
W folderze applications
utworzyliśmy dwa foldery: front-end
i back-end
i skopiowaliśmy całą domyślną zawartość applications
w tych dwóch folderach.
backend.php
również plik index.php
w folderze głównym jako backend.php
Następnie należy skonfigurować CI
do pracy z tymi dwoma wystąpieniami aplikacji.
Konfiguracja Codeigniter :
Otwórz pliki index.php i backend.php i zaktualizuj folder folderów application_folder
:
//index.php
$application_folder = 'applications/front-end';
//backend.php
$application_folder = 'applications/back-end';
Po powyższej konfiguracji CI jest gotowy do uruchomienia dwóch aplikacji w jednym systemie CI:
Żądanie na
example.com/Codeigniter/index.php
otworzy aplikacjęfront-end
Żądanie na
example.com/Codeigniter/backend.php
otworzy aplikacjęback-end
Zwiększ bezpieczeństwo, ukrywając lokalizację plików CodeIgniter
W CodeIgniter istnieją dwa główne katalogi, o które należy się martwić: system i aplikacja . Folder systemowy zawiera podstawowe cechy CodeIgniter. Folder aplikacji będzie zawierał cały kod specyficzny dla aplikacji, w tym modele, kontrolery, widoki i inne odpowiednie biblioteki.
Zgodnie z instrukcjami instalacji CodeIgniter, w najlepszym interesie zabezpieczenia aplikacji, zarówno folder systemowy, jak i folder aplikacji powinny znajdować się nad katalogiem głównym, aby nie były bezpośrednio dostępne za pośrednictwem przeglądarki. Domyślnie pliki .htaccess znajdują się w każdym folderze, aby zapobiec bezpośredniemu dostępowi, ale najlepiej jest je całkowicie usunąć z publicznego dostępu na wypadek zmiany konfiguracji serwera WWW lub niezgodności z .htaccess.
├── CodeIgniter
│ ├── application
│ ├── system
│ ├── wwwroot
│ │ ├── index.php
Po przeniesieniu folderów systemowych i aplikacji otwórz główny plik index.php
i ustaw $system_path
, $application_folder
, najlepiej z pełną ścieżką, np. „ /www/MyUser/system'
. Jednak ścieżki względne powinny działać.
W przypadku systemu Linux / Apache:
$application_folder = './application';
$system_path = './system';
W przypadku systemu Windows / IIS:
$application_folder = '../application/';
$system_path = '../system/';