PHP Programming: Difference between revisions
Jump to navigation
Jump to search
Lsokolowski1 (talk | contribs) |
Lsokolowski1 (talk | contribs) mNo edit summary |
||
Line 63: | Line 63: | ||
'''Examples and exercises''' | '''Examples and exercises''' | ||
* ''localhost/phpWay'' | * ''localhost/phpWay'' | ||
== PHP XML == | == PHP XML == | ||
Line 82: | Line 74: | ||
'''Examples and exercises''' | '''Examples and exercises''' | ||
* ''localhost/ws_'' | * ''localhost/ws_'' | ||
== Using Databases == | == Using Databases == | ||
Line 113: | Line 91: | ||
* modifying and removing data | * modifying and removing data | ||
* binding form to records in the database | * binding form to records in the database | ||
* '''Examples and exercises''' | * '''Helpers''' | ||
** <small>https://phptherightway.com/#databases</small> | |||
'''Examples and exercises''' | |||
* ''localhost/phpWay'' | |||
* ''localhost/ws_'' | |||
* ''localhost/wordpress'' | |||
== Programming interfaces == | == Programming interfaces == | ||
Line 127: | Line 107: | ||
* [[REST_API#Exercises|WebServices]] | * [[REST_API#Exercises|WebServices]] | ||
* ''localhost/ws_'' | * ''localhost/ws_'' | ||
== 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 | |||
* '''Helpers''' | |||
** <small>https://phptherightway.com/#programming_paradigms</small> | |||
'''Examples and exercises''' | |||
* ''localhost/ws_'' | |||
* ''localhost/wordpress'' | |||
== Dealing with Images == | |||
GD Library and alternatives | |||
== Design Patterns == | == Design Patterns == | ||
Line 133: | Line 132: | ||
* Factory Pattern | * Factory Pattern | ||
* MVC model-view-controller | * MVC model-view-controller | ||
'''Examples and exercises''' | |||
* ''localhost/ws_'' | |||
* ''localhost/wordpress'' | |||
<!-- TODO: prep the OOP example with tdd, unit tests and docker; DAY2 --> | <!-- TODO: prep the OOP example with tdd, unit tests and docker; DAY2 --> | ||
Line 149: | Line 148: | ||
* Storing passwords | * Storing passwords | ||
* SSL | * SSL | ||
== Security == | |||
* authorization and authentication | |||
* using cookies and sessions | |||
* JWT | |||
== Stacks and Frameworks - lamp, wamp, etc == | == Stacks and Frameworks - lamp, wamp, etc == |
Revision as of 08:51, 17 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
PHP
- 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, etc)
- 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 do command line scripting
- 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)
- auto generate 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
- Helpers
Examples and exercises
- localhost/phpWay
PHP XML
- SimpleXML
- Expat Parser - event-based
- XML DOM
- XML Reader
- https://www.php.net/XMLReader
- iterators helper - https://github.com/hakre/XMLReaderIterator
Examples and exercises
- localhost/ws_
Using Databases
- Methods of data storing
- 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
- Helpers
Examples and exercises
- localhost/phpWay
- localhost/ws_
- localhost/wordpress
Programming interfaces
- Architecture services
- Adding to the system API
- The data format JSON and XML
- RESTful Services
- Designing Web Service
Examples and exercises
- WebServices
- localhost/ws_
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
- Helpers
Examples and exercises
- localhost/ws_
- localhost/wordpress
Dealing with Images
GD Library and alternatives
Design Patterns
- What are design patterns
- Singleton Pattern
- Factory Pattern
- MVC model-view-controller
Examples and exercises
- localhost/ws_
- localhost/wordpress
Efficiency
- Research applications performance
- Code cache
Safety
- Filtering input
- Session fixation
- Session hijacking
- SQL injection
- Storing passwords
- SSL
Security
- authorization and authentication
- using cookies and sessions
- JWT
Stacks and Frameworks - 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.
wp
- wp-env
- ddev
- vvv
- xampp
- mamp
- local
wp con't
wp API refs