Groups
Groups
Sign in
Groups
Groups
Digital Engineers
Conversations
About
Send feedback
Help
Latest draft mindmap
2 views
Skip to first unread message
Stuart Herbert
unread,
Jun 26, 2010, 9:31:51 AM
6/26/10
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to PHP Fundamentals
Latest mind map before we start hacking on it this afternoon.
PHP Fundamentals
0. This mindmap
Record of topics that need covering
Looking to separate out tools from practices
Both are important
Some overlap inevitable
Keeping tools pages separate from practices might help us structure and grow the site
Feels like a wiki appropriate
With something like Moodle to teach the material in a specific order
Not looking to teach PHP the programming language
Looking to promote PHP practices
Looking to promote sound engineering practices
Less is more; hardest challenge will be agreeing what to leave out :)
1. Our Objectives
0. A standard the community supports and trusts
1. The absolute minimum a PHP developer must know to do her job
Where do we draw the line?
Where do we expect prior knowledge?
What do we consider too advanced to be fundamental?
2. An awareness of advanced topics and techniques
3. An understanding of the PHP way
4. Where to go to get more in-depth information
5. Grass-roots training and accreditation
6. A community of good practice
How agnostic will we be?
Will we push standards?
Or should we push "what works / is commonly used"?
2. Technology Stack
Client-side
HTML
Dialects
HTML 4
HTML 5
XHTML
Browser-specific extensions
Fundamentals
Tags
Tag IDs
CSS styles
CSS classes
Attributes
Entities
Structure
Head
Metadata
Stylesheets
Body
Content
CSS
Javascript
AJAX
Libraries
Prototype
Mootools
jQuery
Common tools
Google Analytics
Flash
Network / internet
DNS
How DNS works
TTL and caching
HTTP
Proxy servers
HTTP caching headers
Evil reverse proxy farms
File transfer
FTP
SSH / SCP / SFTP
Server-side
Web Servers
Apache
IIS 7
Lighttpd
Databases
SQL
Relational Databases
MySQL
Storage engines
MyISAM
Innodb
Admin tools
phpMyAdmin
Command-line tools
Microsoft SQL Server
Admin tools
NoSQL
CouchDB
Cassandra
Memcached
PHP
Installing
Upgrading
Execution Model
PEAR
PECL
Build your own
Frameworks
Introduction
CakePHP
CodeIgniter
Kohana
Symfony
Yii
Zend Framework
Make your own
Bytecode caches
APC
xcache
Configuration
php.ini files
Output buffering
register_globals
magic_quotes
memory limits
File uploading
Operating Systems
Windows Server
Linux
Different flavours
Debian
Ubuntu
Redhat Enterprise
CentOS
Basic concepts
Processes
stdin & stdout
Filesystems
Case-sensitivity
NFS
Basic skills
Users
Logging in
Changing passwords
Creating users
sudo
Networking
/etc/hosts
DNS caches
DHCP
Server administration
Installing packages
Text editors
vi
nano
Command-line basics
Directory listings
UNIX shells
Basic shell usage
Bash programming primer
Services
init.d scripts
cron
Hosting
Shared hosting
Dedicated hosting
Cloud hosting
Other Technologies
Web Services
SOAP
REST
XML-RPC
File and data formats
XML
XML
XSLT
xpath
JSON
Protocols?
Atom
RSS
Development Environments
Desktops
Choice of operating system
Windows
Linux
Mac OS X
Virtual Machines
Editors and Tools
Editors
vim
nano
Emacs
IDEs
Eclipse PHP Development Tools
Komodo
Netbeans
Zend Studio
Debuggers
xdebug
Profilers
xdebug
Version Control Systems
subversion
git
mercurial
CVS
Issue Trackers
Bugzilla
Basecamp
Lighthouseapp
Mantis
Redmine
Trac
3. Development Practices
Architecture
Design
Usability
Accessibility
Coding Practices
Organising your code
PHP objects layout
MVC
Protecting config files
Error checking
E_STRICT
Don't use @ ever!
Exceptions
FIEO
Filter input
filter_var
Escape output
To the browser
htmlspecialchars
urlencode
To the database
mysql_real_escape_string
PDO
User authentication
HTTP basic auth
Doing it yourself
OAuth
PHP sessions
Explaining session IDs
When to create a new session ID
HTML form handling
$_GET / $_POST / $_REQUEST
Cross-site scripting (XSS) attacks
Cross-site request forgery (CSRF) attacks
Redirect 303 after POST
Change state only on POST
Web services
Global variables
Proper use of parameters
Passing variables into functions and methods
Pass by handle
Pass by reference
Pass by value
Treat your code as your own library
Coding Skills
Debugging PHP Code
echo / die
FirePHP
xdebug
Optimisation
Caching
Memcached
Pre-generation
Output buffer
Code Profiling
Assume nothing, profile everything first!
Built-in instrumentation
FirePHP
MySQL EXPLAIN
xdebug
valgrind
Bytecode Caching
Zend Optimizer
Testing
Unit Testing
Continuous Integration
Acceptance Testing
Source Control
Version Control Systems
Branching
Tagging
Documentation
Code comments
PHPdoc
Deployment
Packaging
Tarball / ZIPfile
PHAR files
Handling dependencies
Installing
4. Project Practices
Requirements
Prototyping
Specifications
Test Management
Project Management
Service Management
5. Community and Ecosystem
Free / Open Source Software
PHP Community
Popular blogs
planet-php.net
PHP user groups
Conferences
Wider IT Community
ISO
SEI
OGC
Internet
IETF
RFCs
6. Mentoring & Accreditation
Train the trainers
Mentoring groups
Accreditation
A points system like on college courses
Required to take a set number of modules from a set number of groups
Certificate website, where you can show anyone what you've passed
PHP Fundamentals.itm
PHP Fundamentals.mm
PHP Fundamentals.pdf
Reply all
Reply to author
Forward
0 new messages