PHP Programming: Difference between revisions

From Training Material
Jump to navigation Jump to search
mNo edit summary
Line 133: Line 133:


== Stacks - lamp, wamp, etc ==
== Stacks - lamp, wamp, etc ==
wordpress
* wordpress
* https://developer.wordpress.org/advanced-administration/before-install/development/
** https://developer.wordpress.org/advanced-administration/before-install/development/
drupal
* drupal
* https://www.drupal.org/docs/official_docs/local-development-guide
** https://www.drupal.org/docs/official_docs/local-development-guide
symfony
* symfony
* https://symfony.com/doc/current/setup.html
** https://symfony.com/doc/current/setup.html
Laravel: A PHP framework known for its clean architecture and robust features, including database agnostic migrations, ORM, routing, and authentication tools.
* Laravel: A PHP framework known for its clean architecture and robust features, including database agnostic migrations, ORM, routing, and authentication tools.
* https://laravel.com/docs/12.x#installing-php
** https://laravel.com/docs/12.x#installing-php
Zend Framework: An open-source framework for developing web applications and services using PHP.
* Zend Framework: An open-source framework for developing web applications and services using PHP.
* https://docs.laminas.dev/laminas-mvc/
** https://docs.laminas.dev/laminas-mvc/
CakePHP: A PHP framework that offers a robust set of tools for web application development.
* 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.
* 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.
* yannoff/console: A lightweight, simple alternative to symfony/console designed for easy PHP applications development.
 
** todo
=== wp ===
=== wp ===
wp-env
* wp-env
* https://developer.wordpress.org/block-editor/reference-guides/packages/packages-env/
** https://developer.wordpress.org/block-editor/reference-guides/packages/packages-env/
ddev
* ddev
* https://ddev.readthedocs.io/en/stable/users/quickstart/#wordpress
** https://ddev.readthedocs.io/en/stable/users/quickstart/#wordpress
vvv
* vvv
* https://varyingvagrantvagrants.org/
** https://varyingvagrantvagrants.org/
xampp
* xampp
* http://apachefriends.org/
** http://apachefriends.org/
mamp
* mamp
* https://documentation.mamp.info/en/MAMP-Windows/index.html
** https://documentation.mamp.info/en/MAMP-Windows/index.html
local
* local
* https://localwp.com/
** https://localwp.com/

Revision as of 14:09, 14 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.

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
  • E-mail
  • 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
  • XML DOM

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

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

wp