Dokumentacja
Zanim zaczniesz czytać dokumentację, przeczytaj dział Jak rozpocząć
tutaj by poznać zasadę działania yesFramework.
yesFramework składa się a z następujących plików i katalogów.
Katalog src/yesFramework:
- App
- Core
- Classes
- Base.php
- Db.php
- Http.php
- Request.php
- Router.php
- Str.php
- Validator.php
- View.php
- Exceptions
- config.php
- public
Pliki .env, .htaccess oraz index.html zostały pominięte w tym opisie.
Aplikację należy budować w folderze
App. Kontroler domyślny
WelcomeController.php znajduje się w katalogu
Controllers.
Przed przystąpieniem do pracy należy skonfigurować plik
.env (w głównym katalogu) oraz plik
config.php, który znajduje się w katalogu
Core. Poszczególne linie zostały odpowiednio opisane za pomocą komentarzy.
Dostępne funkcje
yesFramework posiada kilka wbudowanych funkcjonalności.
Funkcje podstawowe (use Core\Classess\Base):
Base::load_view(string $template, string $content, array $var = []) - wczytuje widok
Przykład
Base::load_view('template.php','content.php',['value1','value2']);
Base::send_service_email(string $toemail, string $title, string $message_body) – wysyła e-mail HTML, w którym nadawcą jest e-mail ustalony w pliku config.php
Przykład:
Base::send_service_email('email_docelowy','przykladowy tytul','przykladowa tresc w html');
Base::send_email(string $fromemail, string $toemail, string $title, string $message_body) – wysyła e-mail HTML, z ustalonym nadawcą
Przykład:
Base::send_email('email_nadawczy','email_docelowy','przykladowy tytul','przykladowa tresc w html');
Funkcje obsługi baz danych (use Core\Classes\Db):
Uwaga: Instancja bazy danych jest zazwyczaj przekazywana do kontrolerów za pomocą Dependency Injection jako $this->db. Te metody nie są już statyczne.
$db->insert(string $query, array $var = [], bool $key = false) - dodawanie rekordu do bazy danych. Zwraca ostatni ID po pomyślnym dodaniu. Argument key odpowiada za bindownaie po nazwach kluczy zamiast po numerach.
Przykład:
$db->insert("INSERT INTO table (column1,column2) VALUES (?,?)", array('value1','value2'));
$db->update(string $query, array $var = [], bool $key = false) - aktualizowanie wskazanego rekordu. Zwróci liczbę zmienionych rekordów. Argument key odpowiada za bindownaie po nazwach kluczy zamiast po numerach.
Przykład
$db->update("UPDATE table SET column1=? WHERE id=?", array('value1', 1));
$db->unsafeRawQuery(string $query) - klasyczna funkcja do wykonywania dowolnego zapytania. Nie zalecam używać jej ze względu na brak wbudowanej ochrony przed SQL Injection. Funkcja tylko dla zaawansowanych.
Przykład:
$db->unsafeRawQuery("SELECT * FROM table");
$db->read(string $query, array $var = [], bool $key = false) - funkcja do odczytu danych z bazy. Zwraca wyniki zapytania. Argument key odpowiada za bindownaie po nazwach kluczy zamiast po numerach.
Przykład:
$db->read("SELECT * FROM table WHERE column1=?", array('value'));
$db->readNoNumbers(string $query, array $var = [], bool $key = false) - funkcja do odczytu danych z bazy bez zwracania numerów indeksów w tablicy (tylko tablica asocjacyjna). Zwraca wyniki zapytania. Argument key odpowiada za bindownaie po nazwach kluczy zamiast po numerach.
Przykład:
$db->readNoNumbers("SELECT * FROM table WHERE column1=?", array('value'));
$db->delete(string $query, array $var = [], bool $key = false) - usuwa rekordy. Zwraca liczbę usuniętych rekordów. Argument key odpowiada za bindownaie po nazwach kluczy zamiast po numerach.
Przykład
$db->delete("DELETE FROM table WHERE id=?", array('value'));
$db->transaction(array $query = [], bool $key = false) - funkcja wykonuje transakcje.
Przykład:
$query = array(
array("INSERT INTO table (column1) VALUES (?)", array('7')),
array("INSERT INTO table (column2) VALUES (?)", array('8')),
);
$db->transaction($query);
Funkcje widoku (use Core\Classes\View):
View::input(string $type, string $name, array $options = []) - tworzy pole INPUT w kodzie HTML o podanych parametrach. Tablica opcji: id, class, placeholder, value, size, myparam
Przykład:
Kod:
echo View::input("text","my name", array("value"=>"my value", "size"=>"50", "myparam"=>"required"));
Wygeneruje:
<input type="text" name="my name" value="my value" size="50" required />
View::option(string $value1, string $value2 = NULL) - tworzy pole OPTION w kodzie HTML o podanych parametrach.
Przykład:
Kod:
echo View::option("my value 1","my value 2");
Wygeneruje:
<option value="my value 1">my value 2</option>
Funkcje walidacyjne (use Core\Classes\Validator):
Validator::isEmail(string $email) - sprawdza, czy zmienna jest e-mailem. Zwraca wartość boolean (true/false).
Validator::isIp(string $ip) - sprawdza, czy zmienna jest numerem IP. Zwraca wartość boolean.
Validator::isInteger($data, bool $allowNegative = false) - sprawdza, czy zmienna jest liczba całkowitą. Zmienna $allowNegative pozwala ustawić, czy sprawdzana liczba całkowita może być ujemna czy nie. Zwraca wartość boolean.
Validator::isIntegerInArray(array $array, bool $allowNegative = false) - sprawdza, czy cała tablica zawiera liczby całkowite. Zwraca wartość boolean.
Validator::noEmpty(array $array, array $keysToCheck = []) - funkcja sprawdza, czy tablica nie zawiera w sobie pustych wartości dla kluczy, które zostały wskazane w $keysToCheck. Zwraca wartość boolean.
Funkcja przydatna np. przy sprawdzaniu, czy dane pola formularza zostały wypełnione.
Przykład nr 1:
Validator::noEmpty($_POST,array('name','email'));
Jeśli w tablicy $_POST wartości o kluczach name lub email będą puste, funkcja zwróci false.
Przykład nr 2:
Validator::noEmpty($_POST,array('ALL'));
W powyższym przykładzie, jeśli jakakolwiek wartość tablicy $_POST będzie pusta, funkcja zwróci false.
Validator::isTrueEmpty($data) - funkcja sprawdza, czy dane faktycznie są puste. Zwróć uwagę, że cyfra 0 nie jest traktowana jako pusta.
Funkcje żądań (use Core\Classes\Request):
Request::get(string $value) - funkcja obsługuje tablicę $_GET.
Przykład nr 1:
Request::get()
Sprawdzi, czy $_GET istnieje, jeśli tak, funkcja zwróci wartości tej tablicy, jeśli nie, funkcja zwróci pustą tablicę;
Przykład nr 2:
Request::get('email')
Sprawdzi, czy $_GET['email'] istnieje, jeśli tak, funkcja zwróci wartości tej tablicy, jeśli nie, funkcja zwróci pustą tablicę;
Poniższe funkcje z klasy Request działają na tej samej zasadzie, obsługują tylko inne rodzaje tablic:
Request::post(string $value) - funkcja obsługuje tablicę $_POST.
Request::session(string $value) - funkcja obsługuje tablicę $_SESSION.
Request::server(string $value) - funkcja obsługuje tablicę $_SERVER.
Funkcje dla ciągów znaków (use Core\Classes\Str):
Str::secureInput(string $data) - oczyszcza zmienną ze znaków specjalnych. Zwraca oczyszczoną zmienną.
Str::secureArray(array $array) - funkcja buduje nową odfiltrowaną tablicę.
Str::urlBase64Encode(string $string) - funkcja koduje dane do base64 w wersji przyjaznej dla URL.
Str::urlBase64Decode(string $string) - funkcja dekoduje dane do base64 z wersji przyjaznej dla URL.
Str::isJson(string $json) - funkcja sprawdza, czy podany string jest zgodny z formatem JSON.
Funkcje HTTP (use Core\Classes\Http):
Http::redirect(string $url, bool $redirect_301 = false) - przekierowuje użytkownika na podaną ścieżkę.
Http::getIP() - pobiera adres IP użytkownika.
Http::getServIP() - pobiera adres IP serwera.
Http::getReferer() - pobiera nagłówek HTTP Referer.
Http::getCSRF() - pobiera kod zabezpieczający przed atakiem CSRF.
Http::jsonResult(string $status, string $message, string $message_type) - zwraca wynik w formacie JSON.
Http::setCORSHeaders() - funkcja wysyła nagłówki CORS.
Http::curlGet(string $url, int $time = 10, bool $cert_verify = true) - wykonuje wywołanie CURL jako GET, zwraca uzyskaną odpowiedź.
Http::curlGetHeader(string $url, int $time = 10, bool $cert_verify = true, array $headers = []) - wykonuje wywołanie CURL jako GET z własnymi nagłówkami.
Http::curlPost(string $url, int $time = 10, bool $cert_verify = true, array $params = []) - wykonuje wywołanie CURL jako POST.
Http::curlPostHeader(string $url, int $time = 10, bool $cert_verify = true, array $params = [], array $headers = []) - wykonuje wywołanie CURL jako POST z własnymi nagłówkami.
Http::curlJsonPost(string $url, int $time = 10, bool $cert_verify = true, string $params = "") - wykonuje wywołanie CURL jako POST z danymi JSON.