Latest draft mindmap

2 views
Skip to first unread message

Stuart Herbert

unread,
Jun 26, 2010, 9:31:51 AM6/26/10
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
                                                                                                                                                                                                                                                                                                                                                                                                          • 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