PHP Programming: Difference between revisions
Jump to navigation
Jump to search
Lsokolowski1 (talk | contribs) |
Lsokolowski1 (talk | contribs) |
||
Line 115: | Line 115: | ||
* Designing Web Service | * Designing Web Service | ||
* Examples and exercises | * Examples and exercises | ||
** [[REST_API#Exercises| | ** [[REST_API#Exercises|WebServices]] | ||
== Design Patterns == | == Design Patterns == |
Revision as of 17:12, 16 March 2025
THIS IS A DRAFT
This text may not be complete.
PHP Programming Training Materials
IMPORTANT NOTE for trainers only: Please DO NOT change these materials, especially the EXERCISES, without direct permission from: LUKASZ SOKOLOWSKI.
Copyright Notice
Copyright © 2004-2025 by NobleProg Limited All rights reserved.
This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise.
Intro
- general-purpose scripting language
- especially suited to web development
- fast, flexible and pragmatic
- powers everything from simple blog to the corporate organisations
Intro con't
PHP - recursive acronym for PHP: Hypertext Preprocessor
- widely-used open source language
- can be embedded into HTML
- code is executed on the server, generating HTML which is then sent to the client
- extremely simple, yet offers many advanced features
PHP can
- collect form data
- generate dynamic page content
- send and receive cookies
- so in general - server-side scripting
- whats needed? - the PHP parser (CGI or server module), a web server, and a web browser
- be used on all major operating systems
- support most of the web servers (Apache, IIS, lighttpd, nginx
- support talking to other services - LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (on Windows)
- work as either a module, or as a CGI processor
- do procedural programming or object-oriented programming (OOP), or a mixture of them both
PHP can con't
- also command line scripting
- can be run without any server or browser - only the PHP parser is needed
- ideal for scripts regularly executed using cron (on Unix or macOS) or Task Scheduler (on Windows)
- so ie. do simple/stronger text processing tasks - Perl regexps (PCRE), etc
- output HTML, images, PDF, encrypted data, emails, JSON, XML (libxml2, SimpleXML, XMLReader, XMLWriter; XDebug)
- autogenerate these files, and save them in the file system, instead of printing it out, forming a server-side cache for dynamic content
- support a wide range of databases
- via db specific ext, or abstraction layers (like PDO), or ODBC, cURL, sockets (CouchDB)
- support the WDDX complex data exchange
- instantiate Java objects and use them transparently as own objects
Data Structures (refresher only)
- Associative arrays
- Session variables, global variables, cookies
- Date
- File and File Upload
- Cookies and Sessions
- Error Handling
- Exceptions Handling
- PHP Filter
Security
- authorization and authentication
- using cookies and sessions
Dealing with Images
GD Library and alternatives
PHP XML
- SimpleXML
- Expat Parser - event-based
- XML DOM
- XML Reader
- https://www.php.net/XMLReader
- iterators helper - https://gist.github.com/hakre/5147685
Object-Oriented Programming
- Terminology Object
- Declaring classes and constructors
- Creating and Using Objects
- Properties and methods
- Inheritance
- Access modifiers
- Magic methods
- Declaring and using interfaces
- exception Handling
Using Databases
- Methods of data storing data
- PDO extension
- Connecting to a database using PDO
- Operations on data
- Error Handling PDO
- Transactions
- Primary keys
- Joins
- Aggregate functions and grouping
- connect to the database
- storing passwords
- executing queries
- processing data
- modifying and removing data
- binding form to records in the database
Programming interfaces
- Architecture services
- Adding to the system API
- The data format JSON and XML
- RESTful Services
- Designing Web Service
- Examples and exercises
Design Patterns
- What are design patterns
- Singleton Pattern
- Factory Pattern
- MVC model-view-controller
Efficiency
- Research applications performance
- Code cache
Safety
- Filtering input
- Session fixation
- Session hijacking
- SQL injection
- Storing passwords
- SSL
Stacks - lamp, wamp, etc
- wordpress
- drupal
- symfony
- Laravel: A PHP framework known for its clean architecture and robust features, including database agnostic migrations, ORM, routing, and authentication tools.
- Zend Framework: An open-source framework for developing web applications and services using PHP.
- CakePHP: A PHP framework that offers a robust set of tools for web application development.
- todo
- PSX: A PHP framework dedicated to building fully typed REST APIs, offering a new approach to API development and challenging existing frameworks like Laravel and Symfony.
- todo
- yannoff/console: A lightweight, simple alternative to symfony/console designed for easy PHP applications development.
- todo
wp
- wp-env
- ddev
- vvv
- xampp
- mamp
- local
wp con't
wp api refs