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
    • Controllers
      • welcome.php
    • Models
      • Hello.php
    • Views
      • template.php
      • content.php
  • Core
    • Classess
      • Base.php
      • Db.php
      • Request.php
      • Validator.php
      • View.php
    • config.php
    • helper.php
  • public
    • EPages
      • 404.html
    • css
      • style.css
    • img
      • logo-yesframework.png
    • index.php
Pliki .htaccess oraz index.html zostały pominięte w tym opisie.

Aplikację należy budować w folderze App. Kontroler domyślny welcome.php znajduje się w katalogu Controllers.

Przed przystąpieniem do pracy należy poprawnie skonfigurować 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\Classess\Db):

Db::pdo_insert(string $query, array $var = [], bool $secure_input = true, 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::pdo_insert("INSERT table (column1,column2) VALUES (?,?)",array('value1','value2'), false, true);


Db::pdo_update(string $query, array $var = [], bool $execute_result = false, bool $secure_input = true, bool $key=false) - aktualizowanie wskazanego rekordu. Domyślnie, jeśli jakiś rekord ulegnie zmianie, zwróci liczbę zmienionych rekordów. Jeśli tylko chcesz wiedzieć, czy metoda się wykonała zmień $execute_result na true. Wtedy zwracana jest wartość true lub false. Argument key odpowiada za bindownaie po nazwach kluczy zamiast po numerach.
Przykład
Db::pdo_update("UPDATE column1 FROM table SET column1=?",array('value1'),false,false,false);


Db::pdo_query(string $query) - klasyczna funkcje do wykonywania dowolnego zapytania. Zwraca "execute()" z zapytania. Nie zalecam używać jej do klasycznych zapytań ze względu na brak wbudowanej ochrony przez SQL Injection. Funkcja tylko dla zaawansowanych.
Przykład:
Db::pdo_query("SELECT * FROM table");


Db::pdo_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:
pdo_read("SELECT * FROM table WHERE column1=?",array('value'));


Db::pdo_read_no_numbers(string $query, array $var = [], bool $key = false) - funkcja do odczytu danych z bazy bez zwracania numerów w tablicy. Zwraca wyniki zapytania. Argument key odpowiada za bindownaie po nazwach kluczy zamiast po numerach.
Przykład:
pdo_read_no_numbers("SELECT * FROM table WHERE column1=?",array('value'));


Db::pdo_delete(string $query, array $var = [], bool $key=false) - usuwa rekordy. Zwraca liczbe usuniętych rekordów. Argument key odpowiada za bindownaie po nazwach kluczy zamiast po numerach.
Przykład
Db::pdo_delete("DELETE FROM table WHERE id=?",array('value'));


Db::pdo_transaction($query = array()) - funkcja wykonuje transakcje.
Przykład:
$query = array(
	array("INSERT table (column1) VALUES (?)",array('7')),
	array("INSERT table (column2) VALUES (?)",array('8')), 
);
Db::pdo_transaction(array $query);


Funkcje widoku (use Core\Classess\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\Classess\Validator):

Validator::check_email(string $email) - sprawdza, czy zmienna jest e-mailem. Jeśli tak - nic nie robi, jeśli nie - przerywa działanie skyptu.

Validator::check_ip(string $ip) - sprawdza, czy zmienna jest numerem IP. Jeśli tak - nic nie robi, jeśli nie - przerywa działanie skyptu.

Validator::check_integer(int $data, bool $param) - sprawdza, czy zmienna jest liczba całkowitą. Zmienna $param pozwala ustawić, czy sprawdzana liczba całkowita może być ujemna czy nie. $param = false - zmienna nieujemna, $param=true zmienna może być ujemna. Jeśli tak - nic nie robi, jeśli nie - przerywa działanie skyptu.

Validator::rule_no_empty(array $array = [], array $param = []) - funkcja sprawdza, czy tablica $array nie zawiera w sobie pustych kluczy, które zostały wskazane w $param. Jeśli walidacja się nie powiedzie działanie skryptu zostanie przerwane. Funkcja przydatna np. przy sprawdzaniu, czy dane pola formularza zostały wypełnione.
Przykład nr 1:
Validator::rule_no_empty($_POST,array('name','email'));
Jeśli w tablicy $_POST wartości o kluczach name lub email będą puste, funkcja przerwie działanie skryptu.
Przykład nr 2:
Validator::rule_no_empty($_POST,array('ALL'));
W powyższym przykładzie, jeśli jakakolwiek wartość tablicy $_POST będzie pusta, funkcja przerwie działanie skryptu.

Funkcje żądań (use Core\Classess\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 pomocnicze:

check_email(string $data) – sprawdza, czy zmienna jest e-mailem. Zawraca true (w przypadku gdy wszystko ok) lub false (gdy e-mail nie jest poprawny.).

check_ip(string $ip) - sprawdza, czy zmienna jest numerem IP. Zawraca true lub false.

check_integer(int $data, bool $param = false) – sprawdza, czy zmienna jest liczba całkowitą. Zmienna $param pozwala ustawić, czy sprawdzana liczba całkowita może być ujemna czy nie. $param = false - zmienna nieujemna, $param=true zmienna może być ujemna. Zwraca true lub false.

check_integer_in_array(bool $param = false, array $array = []) – sprawdza, czy cała tablica zawiera liczby całkowite. Zmienna $param pozwala ustawić, czy sprawdzana liczba całkowita może być ujemna czy nie. $param = false - zmienna nieujemna, $param=true zmienna może być ujemna. Zwraca true lub false.

secure_input(string $data) – oczyszcza zmienną ze znaków specjalnych. Zwraca oczyszczoną zmienną.

redirect(string $url, $redirect_301 = false) – przekierowuje użytkownika na podaną w zmiennej ścieżkę.

getIP() - pobiera adres IP.

getServIP() - pobiera adres IP serwera

genHoursOptionsList() - generuje listę godzin jako <option>.

genMinutesOptionsList() - generuje listę minut jako <option>.

getCSRF() - pobiera kod zabezpieczający przed atakiem CSRF.

curl_get(string $url, int $time, bool $cert_verify = true) – wykonuje wywołanie CURL jako GET, zwraca uzyskaną odpowiedź ze wskazanego adresu url. Jako drugi parametr przyjmuje czas TIMEOUT w sekundach. Trzeci parametr to kontrola poprawności certyfikatu SSL (przyjmuje true lub false).

curl_get_header(string $url, int $time, bool $cert_verify = true, array $headers) – wykonuje wywołanie CURL jako GET z własnymi nagłówkami, zwraca uzyskaną odpowiedź ze wskazanego adresu url. Jako drugi parametr przyjmuje czas TIMEOUT w sekundach. Trzeci parametr to kontrola poprawności certyfikatu SSL (przyjmuje true lub false).

curl_post($url, $time, $cert_verify, $params=array()) - wykonuje wywołanie CURL jako POST do wskazanego url. Zmienna $time określa TIMEOUT w sekundach. Trzeci parametr to kontrola poprawności certyfikatu SSL (przyjmuje true lub false). W zmiennej $param należy zawrzeć zmienne do wysłania.
Przykład:
$param = array(
'var1' => 'value1',
'var2' => 'value2',
);

echo curl_post('http://example.com',2,true,$param);
curl_post_header(string $url, int $time, bool $cert_verify = true, array $params = [], array $headers) - wykonuje wywołanie CURL jako POST do wskazanego url z własnymi nagłówkami. Zmienna $time określa TIMEOUT w sekundach. Trzeci parametr to kontrola poprawności certyfikatu SSL (przyjmuje true lub false). W zmiennej $param należy zawrzeć zmienne do wysłania.

curl_json_post(string $url, int $time, bool $cert_verify = true, string $params) - wykonuje wywołanie CURL jako POST do wskazanego url z danymi JSON. Zmienna $time określa TIMEOUT w sekundach. Trzeci parametr to kontrola poprawności certyfikatu SSL (przyjmuje true lub false). W zmiennej $param należy zawrzeć zmienne do wysłania.

rule_no_empty(array $array = [], array $param = []) - działa na tej samej zasdzie co opisywana wcześniej funkcja Validator::rule_no_empty(array $array = [], array $param = []). Róznica polega na tym, że w przypadku gdy wszystko jest ok, zwraca true, a jeśli znajdzie pusty element, zwróci false zamiast przerywać działanie skryptu.

url_base64_encode(string $string) - funkcja koduje dane do base64 w wersji przyjaznej dla URL.

url_base64_decode(string $string) - funkcja dekoduje dane do base64 z wersji przyjaznej dla URL.

true_empty(mixed $data) - funkcja sprawdza, czy dane faktycznie sa puste

secure_array(array $array) - funkcja buduje nową odfiltrowaną tablicę

check_json(string $json) - funkcja sprawdza, czy podany string jest zgodny z formatem JSON

CORSHeaders() - funkcja rozwiązuje problem związany z CORS