Szczegóły ebooka

CodeIgniter 4. Zaawansowane tworzenie stron WWW w PHP

CodeIgniter 4. Zaawansowane tworzenie stron WWW w PHP

Łukasz Sosna

Ebook

Twórz aplikacje PHP z CodeIgniterem

  • Poznaj użyteczne klasy frameworka
  • Naucz się wykorzystywać je w praktyce
  • Rozwiń swoje umiejętności programistyczne

CodeIgniter to niewielki, lecz potężny framework, który ułatwia tworzenie aplikacji zarówno początkującym, jak i zaawansowanym programistom PHP. Dzięki implementacji wzorca model-view-controller wspiera podział kodu na warstwy odpowiedzialne za operacje związane z zarządzaniem danymi, wyświetlanie strony oraz obsługę logiki biznesowej, co upraszcza nie tylko pisanie, lecz również utrzymywanie i rozwój wykorzystujących go aplikacji.

Szerokie możliwości, doskonała wydajność, znakomite wsparcie programisty, zgodność z najnowszymi wersjami PHP, łatwość użycia i logiczna struktura bibliotek - wszystko to sprawia, że CodeIgniter jest wybierany przez kolejne generacje deweloperów, którym pozwala twórczo skupić się na projekcie oraz uniknąć wysiłku związanego z implementacją powtarzalnego kodu odpowiedzialnego za typowe operacje.

Jeśli chcesz szybko zacząć przygodę z frameworkiem, sięgnij po tę książkę! Bezboleśnie wprowadzi Cię ona w świat programowania z wykorzystaniem popularnego frameworka, przedstawi zasady zastosowania wzorca MVC, zapozna ze sposobami obsługi baz danych oraz zaprezentuje klasy systemowe i pomocnicze. Nabytą wiedzę będziesz mógł ugruntować i sprawdzić w praktyce dzięki ćwiczeniom, w ramach których krok po kroku nauczysz się walidować dane wprowadzane przez użytkownika oraz dzielić je na strony z wykorzystaniem własnego sortowania.

  • Instalacja, konfiguracja i struktura frameworka CodeIgniter
  • Implementacja wzorca model-view-controller
  • Podstawy tworzenia aplikacji WWW z wykorzystaniem CodeIgnitera
  • Metody umożliwiające obsługę baz danych i tworzenie zapytań
  • Zastosowanie przydatnych klas systemowych i pomocniczych
  • Praktyczne ćwiczenia z programowania wraz z rozwiązaniami

CodeIgniter - szybko, wydajnie, prosto do celu!

 

Wstęp 15

 

  • Wymagania serwera 16

Rozdział 1. Instalacja 19

  • Pobieranie aplikacji z serwera 19
  • Pobieranie polskiego języka interfejsu 19
  • Instalacja systemu na serwerze WWW 21
  • Polska wersja językowa systemu 23
  • Różnica pomiędzy wersjami frameworka CodeIgniter: 1, 2, 3 a wersją 4 24
  • Struktura systemu CodeIgniter 24
  • Nazywanie plików, klas, metod i funkcji 25

Rozdział 2. Model, Widok, Kontroler 27

  • Wywoływanie kontrolera oraz metody 28
  • Wywoływanie kontrolera oraz metody - adresy dla wyszukiwarek 28
  • Kontroler (controller) 29
    • Automatyczne ładowanie w kontrolerze (__construct) 31
    • Przekazywanie parametrów do metody kontrolera 32
    • Definicja domyślnego kontrolera (setDefaultController) 33
  • Widok 33
    • Ładowanie kilku widoków 35
    • Dodawanie danych do widoków 36
    • Umieszczanie widoków w folderach 37
  • Model 38
  • Ładowanie funkcji pomocniczych (helper) 40

Rozdział 3. Rutowanie URL, odbieranie danych, zapisywanie logów oraz pasek debugera 41

  • Parametry w adresie URL 42
  • Filtrowanie parametrów 43
  • Definiowanie własnych wieloznaczników 44
  • Wyrażenia regularne 45
  • Grupowe przepisywanie adresów 46
  • Własna strona dla błędu 404 47
  • Pobieranie danych wysłanych do programu 47
    • Włączanie klasy 47
    • Metoda isCLI() 48
    • Metoda isAJAX() 48
    • Metoda isSecure() 48
    • Metoda getVar() 49
    • Metoda getGet() 49
    • Metoda getPost() 49
    • Metoda getPostGet() 50
    • Metoda getGetPost() 50
    • Metoda getCookie() 50
    • Metoda getServer() 51
    • Metoda getUserAgent() 51
  • Zapisywanie błędów występujących podczas obsługi witryny 51
  • Włączanie paska debugera 53

Rozdział 4. Bazy danych 55

  • Praca z bazą danych 55
  • Wczytanie sterownika (Database::connect()) 56
  • Konfiguracja połączenia 58
  • Wykonywanie zapytania (query) 62
  • Generowanie wyników zapytania 64
    • Prefiks tabel 64
    • Rezultat zapytania zwracającego dane jako obiekt 65
    • Rezultat zapytania zwracającego dane w postaci tablicy 66
    • Pobieranie jednego rekordu z bazy danych jako obiektu 67
    • Pobieranie z bazy danych jednego rekordu jako tablicy 68
    • Przechodzenie pomiędzy rekordami 69
    • Pobieranie ilości kolumn tabeli 72
    • Pobieranie nazw kolumn tabeli 73
    • Zwalnianie pamięci RAM po zapytaniu 74
    • Pobieranie identyfikatora rekordu dodanego do tabeli 75
    • Pobieranie informacji o liczbie zmienionych rekordów 75
    • Metoda getPlatform() 76
    • Metoda getVersion() 77
  • Połączenie z drugą bazą danych 78
  • Zabezpieczanie danych (escape, escapeString i escapeLikeString) 80
  • Zabezpieczanie zapytania z wartościami 81
  • Zabezpieczanie zapytania z wartościami posiadającymi nazwy 82
  • Przetwarzanie błędów 83
  • Wyświetlenie ostatniego zapytania 85
  • Metoda reconnect() 86
  • Metoda close() 86

Rozdział 5. Pomoc w tworzeniu zapytań do bazy danych 89

    • Metoda resetQuery() 89
    • Metoda countAllResults() 89
    • Metoda countAll() 89
    • Metoda get() 90
    • Metoda getWhere() 90
    • Metoda select() 90
    • Metoda selectAvg() 91
    • Metoda selectMax() 91
    • Metoda selectMin() 91
    • Metoda selectSum() 91
    • Metoda selectCount() 92
    • Metoda distinct() 92
    • Metoda from() 92
    • Metoda join() 92
    • Metoda where() 93
    • Metoda orWhere() 93
    • Metoda orWhereIn() 93
    • Metoda orWhereNotIn() 94
    • Metoda whereIn() 94
    • Metoda whereNotIn() 94
    • Metoda groupStart() 95
    • Metoda orGroupStart() 95
    • Metoda notGroupStart() 95
    • Metoda orNotGroupStart() 95
    • Metoda groupEnd() 95
    • Metoda like() 96
    • Metoda orLike() 96
    • Metoda notLike() 96
    • Metoda orNotLike() 97
    • Metoda having() 97
    • Metoda orHaving() 98
    • Metoda orHavingIn() 98
    • Metoda havingIn() 99
    • Metoda havingNotIn() 99
    • Metoda havingLike() 99
    • Metoda orHavingLike() 100
    • Metoda notHavingLike() 100
    • Metoda orNotHavingLike() 101
    • Metoda havingGroupStart() 101
    • Metoda orHavingGroupStart() 101
    • Metoda notHavingGroupStart() 101
    • Metoda orNotHavingGroupStart() 102
    • Metoda havingGroupEnd() 102
    • Metoda groupBy() 102
    • Metoda orderBy() 102
    • Metoda limit() 102
    • Metoda offset() 103
    • Metoda set() 103
    • Metoda insert() 103
    • Metoda insertBatch() 103
    • Metoda setInsertBatch() 104
    • Metoda update() 104
    • Metoda setUpdateBatch() 105
    • Metoda replace() 105
    • Metoda delete() 105
    • Metoda increment() 105
    • Metoda decrement() 106
    • Metoda truncate() 106
    • Metoda emptyTable() 106
    • Metoda getCompiledSelect() 106
    • Metoda getCompiledInsert() 107
    • Metoda getCompiledUpdate() 107
    • Metoda getCompiledDelete() 107
  • Od teorii do praktyki 107
    • Polecenie SELECT 110
    • Polecenie SELECT z zastosowaniem ORDER BY 111
    • Polecenie SELECT z użyciem ograniczenia LIMIT 112
    • Polecenie SELECT z klauzulami LIMIT oraz ORDER 113
    • Polecenie SELECT z wyborem rekordu dzięki klauzuli WHERE 113
    • Polecenie SELECT z wyborem za pomocą klauzuli LIKE 114
    • Polecenie INSERT 115
    • Polecenie UPDATE ze wskazaniem rekordu za pomocą klauzuli WHERE 117
    • Polecenie DELETE 118

Rozdział 6. Klasy systemowe 119

  • Klasa listów e-mail 119
    • Używanie klasy przeznaczonej do wysyłania listów e-mail 119
    • Ustawienia klasy do wysyłania listów e-mail 120
    • Metoda setFrom() 121
    • Metoda setReplyTo() 121
    • Metoda setTo() 122
    • Metoda setCC() 122
    • Metoda setBCC() 122
    • Metoda setSubject() 123
    • Metoda setMessage() 123
    • Metoda setAltMessage() 123
    • Metoda setHeader() 124
    • Metoda clear() 124
    • Metoda send() 125
    • Metoda attach() 125
    • Metoda setAttachmentCID() 126
    • Metoda printDebugger() 126
  • Klasa szyfrowania i deszyfrowania danych 126
    • Konfigurowanie klasy oraz domyślne zachowania 127
    • Ustawianie własnego klucza szyfrowania 127
    • Metoda static createKey() 127
    • Metoda initialize() 128
    • Metoda encrypt() 128
    • Metoda decrypt() 128
  • Klasa przeznaczona do pracy z plikami 129
    • Metoda getBasename() 129
    • Metoda getMTime() 129
    • Metoda getRealPath() 129
    • Metoda getPerms() 129
    • Metoda isWritable() 129
    • Metoda getRandomName() 130
    • Metoda getSize() 130
    • Metoda getMimeType() 130
    • Metoda guessExtension() 131
    • Metoda move() 131
  • Klasa ograniczająca dostęp do strony 131
    • Dostosowanie obrony strony WWW przed botami 132
  • Klasa manipulacji obrazami 132
    • Inicjalizacja obiektu klasy 132
    • Metoda crop() 133
    • Metoda convert() 134
    • Metoda fit() 134
    • Metoda flatten() 135
    • Metoda flip() 135
    • Metoda resize() 136
    • Metoda rotate() 136
    • Metoda text() 136
  • Klasa służąca do dzielenia rekordów z bazy danych na części 137
    • Dzielenie rekordów na porcje prezentowane na kolejnych stronach 138
    • Dzielenie na strony rezultatów z różnych tabel 139
    • Ręczne ustawianie podziału 139
    • Określenie parametru, który ma zostać uznany za numer strony 140
    • Metoda setSurroundCount() 140
    • Metody hasPrevious() i hasNext() 140
    • Metody getPrevious() i getNext() 140
    • Metody getFirst() i getLast() 140
    • Metoda links() 141
    • Metoda hasPreviousPage() i hasNextPage() 141
    • Metoda getPreviousPage() i getNextPage() 141
  • Klasa bezpieczeństwa danych 141
    • Załadowanie klasy 141
    • Ataki typu CSRF 142
    • Dodawanie adresów wyłączonych ze sprawdzania 142
    • Automatyczne tworzenie pól w formularzu 143
    • Wysyłanie żądań za pomocą formatu JSON 143
    • Wysyłanie za pomocą nagłówka HTTP 143
    • Wysyłanie za pomocą znacznika META 143
  • Klasa do obsługi sesji 143
    • Inicjalizacja sesji 143
    • Pobieranie danych z sesji 145
    • Dodawanie danych do sesji 145
    • Sprawdzanie, czy w sesji istnieje dany klucz 146
    • Dodawanie danych do sesji 146
    • Usuwane danych z sesji 146
    • Dane tymczasowe (Flashdata) 146
    • Niszczenie sesji i jej danych 147
  • Klasa limitu aktywności 147
    • Metoda check() 149
    • Metoda getTokentime() 149
  • Klasa ułatwiająca pracę z plikami wgrywanymi na serwer 150
    • Pobieranie wgranych plików 150
    • Wgrywanie pojedynczego pliku 150
    • Wgrywanie kilku plików zapisanych w tablicy 151
    • Wgrywanie kilku plików załadowanych do jednego pola 151
    • Praca z wgranymi plikami 152
    • Metoda getName() 152
    • Metoda getClientName() 153
    • Metoda getTempName() 153
    • Metoda getClientExtension() 153
    • Metoda getClientMimeType() 153
    • Przenoszenie plików 154
  • Klasa służąca do pracy z adresami URL 154
    • Dodawanie klasy do obsługi 155
    • Obecny adres URL 155
    • Ciągi znaków w URI 155
    • Operacje na schemacie połączenia 156
    • Operacje na autorytatywnej części adresu 156
    • Operacje na użytkowniku 157
    • Operacje na hoście domeny 157
    • Operacje na porcie 158
    • Operacje na ścieżce dostępu 158
    • Operacje na zapytaniach 158
    • Filtrowanie wartości z zapytania w adresie 159
    • Operacja na fragmencie, który należy wybrać ze strony WWW 160
    • Segmenty URI 160
    • Wyłączanie pokazywania błędów 161
  • Klasa przetwarzająca informacje o użytkowniku strony WWW 161
    • Uzyskanie dostępu do obiektu klasy 161
    • Przeglądarka użytkownika 161
    • Metoda isBrowser() 162
    • Metoda isMobile() 162
    • Metoda isRobot() 163
    • Metoda isReferral() 163
    • Metoda getBrowser() 163
    • Medota getVersion() 163
    • Metoda getMobile() 163
    • Metoda getRobot() 163
    • Metoda getPlatform() 163
    • Metoda getReferrer() 164
    • Metoda getAgentString() 164
    • Metoda parse() 164
  • Klasa walidacji danych wprowadzonych do formularza 164
    • Metoda listErrors() 165
    • Metoda getErrors() 165
    • Metoda getError() 165
    • Metoda validate() 165
    • Metoda setRule() 165
    • Metoda setRules() 166
    • Walidacja pól oraz tablic 166
    • Zapisywanie reguł walidacji w osobnym pliku konfiguracyjnym 167
    • Metoda reset() 167
    • Metoda run() 167
    • Tworzenie własnych metod porównania wartości pola 167
    • Dostępne metody walidacji 169

Rozdział 7. Biblioteki pomocnicze 173

  • Pliki ciasteczek (cookie) 173
    • Funkcja set_cookie() 173
    • Funkcja get_cookie() 174
    • Funkcja delete_cookie() 174
  • Data (date) 174
    • Funkcja now() 175
    • Funkcja timezone_select() 175
  • Katalog (filesystem) 175
    • Funkcja directory_map() 176
    • Funkcja write_file() 176
    • Funkcja delete_files() 176
    • Funkcja get_filenames() 177
    • Funkcja get_dir_file_info() 177
    • Funkcja get_file_info() 177
    • Funkcja symbolic_permissions() 178
    • Funkcja octal_permissions() 178
    • Funkcja set_realpath() 178
  • Formularz (form) 179
    • Umieszczanie wartości w polach 179
    • Funkcja form_open() 179
    • Funkcja form_open_multipart() 180
    • Funkcja form_hidden() 180
    • Funkcja form_input() 180
    • Funkcja form_password() 181
    • Funkcja form_upload() 181
    • Funkcja form_textarea() 181
    • Funkcja form_dropdown() 182
    • Funkcja form_multiselect() 182
    • Funkcje form_fieldset() i form_fieldset_close() 182
    • Funkcja form_checkbox() 183
    • Funkcja form_radio() 183
    • Funkcja form_submit() 183
    • Funkcja form_reset() 184
    • Funkcja form_button() 184
    • Funkcja form_close() 184
  • HTML (html) 184
    • Funkcja img() 185
    • Funkcja link_tag() 185
    • Funkcja script_tag() 186
    • Funkcje ol() i ul() 186
    • Funkcja video() 186
    • Funkcja source() 187
    • Funkcja embed() 187
    • Funkcja object() 187
    • Funkcja doctype() 188
  • Liczba (number) 189
    • Funkcja number_to_size() 190
    • Funkcja number_to_amount() 190
    • Funkcja number_to_currency() 190
    • Funkcja number_to_roman() 191
  • Bezpieczeństwo (security) 191
    • Funkcja sanitize_filename() 191
    • Funkcja strip_image_tags() 192
    • Funkcja encode_php_tags() 192
  • Ciąg (string) 192
    • Funkcja random_string() 192
    • Funkcja increment_string() 193
    • Funkcja alternator() 193
    • Funkcja reduce_double_slashes() 194
    • Funkcja strip_slashes() 194
    • Funkcja reduce_multiples() 194
    • Funkcja quotes_to_entities() 195
    • Funkcja strip_quotes() 195
    • Funkcja word_limiter() 195
    • Funkcja character_limiter() 195
    • Funkcja ascii_to_entities() 196
    • Funkcja entities_to_ascii() 196
    • Funkcja convert_accented_characters() 196
    • Funkcja word_censor() 197
    • Funkcja highlight_code() 197
    • Funkcja highlight_phrase() 197
    • Funkcja word_wrap() 198
    • Funkcja ellipsize() 198
    • Funkcja excerpt() 199
  • URL (url) 199
    • Funkcja site_url() 199
    • Funkcja base_url() 199
    • Funkcja current_url() 200
    • Funkcja uri_string() 200
    • Funkcja index_page() 200
    • Funkcja anchor() 200
    • Funkcja mailto() 201
  • XML (xml) 201
    • Funkcja xml_convert() 201

Rozdział 8. Ćwiczenia 203

  • Ćwiczenie 1. Walidacja danych z formularza 203
  • Ćwiczenie 2. Walidacja danych z zastosowaniem własnej formuły 208
  • Ćwiczenie 3. Dzielenie danych na strony 214
  • Ćwiczenie 4. Dzielenie danych według własnych wytycznych - sortowanie 217

Podsumowanie 223

  • Tytuł: CodeIgniter 4. Zaawansowane tworzenie stron WWW w PHP
  • Autor: Łukasz Sosna
  • ISBN: 978-83-283-8316-6, 9788328383166
  • Data wydania: 2021-05-12
  • Format: Ebook
  • Identyfikator pozycji: codel4
  • Wydawca: Helion