Index
B
- bcrypt hashing algorithm, Hash User Passwords with bcrypt
- behavior-driven development (BDD), Behavior-Driven Development (BDD)
- benchmarking tools, When to Use a Profiler
- best practices (see good practices)
- bindTo() method, Attach State
- Bitbucket, Version Control
- Blackfire, Blackfire Profiler
- BOM (byte-order marker), PSR-1: Basic Code Style
- bound parameters, Prepared Statements
- buffer size, tuning of, Output Buffering
- bytecode caches, Zend OPcache
C
- caching, tuning of, Zend OPcache
- CamelCase format, PSR-1: Basic Code Style
- Capistrano
- application deployment, Deploy Your Application
- application rollback, Roll Back Your Application
- authentication, Authenticate
- benefits of, Capistrano
- config/deploy.rb file, The config/deploy.rb file
- configuration of, Configure
- hooks in, Capistrano Hooks
- installation of, Install
- operation of, How It Works
- remote server preparation, Prepare the Remote Server
- software dependencies and, Software dependencies
- virtual hosts and, Virtual host
- case keyword, PSR-2: Strict Code Style
- catch keyword, PSR-2: Strict Code Style
- CentOS
- Chef, Chef
- class definition, PSR-2: Strict Code Style
- class names, Import and Alias, PSR-1: Basic Code Style
- classical inheritance, Why We Use Traits
- closures
- code style
- autoloading, PSR-1: Basic Code Style
- automating compatibility, PSR-2: Strict Code Style
- class definition, PSR-2: Strict Code Style
- control structures, PSR-2: Strict Code Style
- files and lines, PSR-2: Strict Code Style
- indentation, PSR-2: Strict Code Style
- keywords, PSR-2: Strict Code Style
- method definition, PSR-2: Strict Code Style
- names, PSR-1: Basic Code Style
- namespaces, PSR-2: Strict Code Style
- PHP tags, PSR-1: Basic Code Style
- PSR-1: basic code style, PSR-1: Basic Code Style
- PSR-2: strict code style, PSR-2: Strict Code Style
- standardization of, Style
- UTF-8 character set, PSR-1: Basic Code Style
- visibilities, PSR-2: Strict Code Style
- command line runner, PHPUnit
- command-line scripts, Implement scan.php
- components
- autoloading, Autoloading PHP components
- benefits of, Components, Use PHP Components
- characteristics of good, What Are Components?
- Composer installation, How to Install Composer
- creating, Create PHP Components-Using the Component
- definition of term, What Are Components?
- example project, Example Project
- filesystem organization, Filesystem Organization
- finding/selecting, Find Components
- importance of, Use PHP Components
- installing, Component installation
- naming, Component names
- private repositories, Composer and Private Repositories
- using, Use PHP Components
- vs. frameworks, Components Versus Frameworks
- Composer
- composer.json files, The composer.json File
- config/deploy.rb file, The config/deploy.rb file
- config/deploy/production.rb file, The config/deploy/production.rb file
- constant names, PSR-1: Basic Code Style
- control structures, PSR-2: Strict Code Style
D
- data
- good practices for handling, Sanitize, Validate, and Escape
- sanitizing HTML special characters, HTML
- sanitizing input, Sanitize Input
- SQL queries, SQL queries
- streaming, Stream Wrappers
- streams, Streams-Custom Stream Filters
- user profile information, User profile information
- validation of, Validate Data
- databases
- dates, times, and time zones
- dedicated servers, Dedicated Server
- default aliases, Import and Alias
- deployment
- dispatch() method, Attach State
- do while keyword, PSR-2: Strict Code Style
- DRY (Do not repeat yourself), Why We Use Traits
- DSN string argument, Database Connections and DSNs
- dynamic typing, definition of term, Future
E
- else keyword, PSR-2: Strict Code Style
- elseif keyword, PSR-2: Strict Code Style
- email addresses, sanitizing, User profile information
- encryption, vs. hashing, Hash User Passwords with bcrypt
- EPEL (Extra Packages for Enterprise Linux) repository, CentOS 7
- errors and exceptions
- catching exceptions, Catch exceptions
- differences between, Errors and Exceptions, Errors
- during development, Errors and Exceptions During Development
- error handlers, Error Handlers
- error logging, Production
- error reporting, Errors
- errors, Errors
- exception handlers, Exception Handlers
- exceptions, Exceptions
- logging exceptions, Exception Handlers
- throwing exceptions, Throw exceptions
- exec() function, Max Execution Time
- extends keyword, PSR-2: Strict Code Style
- external data sources, Sanitize, Validate, and Escape
F
- Facebook Open Source project, HHVM and Hack
- FastCGI protocol, HHVM, FastCGI, and Nginx
- Ferrara, Anthony, Password Hashing API
- file uploads, tuning, File Uploads
- files, standards for, PSR-2: Strict Code Style
- filter_input() function, User profile information
- filter_var() function, User profile information
- firewalls, Disable Passwords and Root Login
- for keyword, PSR-2: Strict Code Style
- foreach keyword, PSR-2: Strict Code Style
- Forge, Delegate Server Provisioning
- framework interoperability
- frameworks
- front controllers, Router Scripts
- functional tests, What Do We Test?
- functions
G
- generators
- getContent() method, Code to an Interface
- getId() method, Code to an Interface
- Git, Version Control
- global namespaces, Global namespace
- good practices
- benefits of, Good Practices
- components, Components-Using the Component
- data handling, Sanitize, Validate, and Escape
- data validation, Validate Data
- databases, Databases-Transactions
- dates, times, and time zones, Dates, Times, and Time Zones-The nesbot/carbon Component
- DRY (Do not repeat yourself), Why We Use Traits
- errors and exceptions, Errors and Exceptions-Production
- escaping output, Escape Output
- multibyte strings, Multibyte Strings
- passwords, Passwords-Password Hashing API for PHP < 5.5.0
- sanitizing input, Sanitize Input
- standards, Standards-How to Write a PSR-4 Autoloader (and Why You Shouldn’t)
- streams, Streams-Custom Stream Filters
- trait definition, How to Create a Trait
- vs. best practices, Good Practices
- Gutmans, Andi, Past
H
- Hack language
- backwards compatibility of, HHVM and Hack
- benefits of, The Hack Language, Hack Goes Both Ways, HHVM/Hack vs. PHP
- converting PHP to, Convert PHP to Hack
- data structures, Hack Data Structures
- dynamic typing, Dynamic Typing
- features of, Future
- modes in, Hack Modes
- static typing, Static Typing
- syntax in, Hack Syntax
- type checking, Hack Type Checking
- vs. PHP, HHVM/Hack vs. PHP
- hashing
- HipHop Virtual Machine (HHVM)
- applications using, HHVM and Hack
- benefits of, Future, PHP at Facebook
- choosing, Is HHVM Right for Me?
- configuration of, Configure
- development of, HHVM
- extensions for, Extensions
- implementation of, PHP at Facebook
- installation of, Install
- vs. PHP, HHVM/Hack vs. PHP
- Zend Engine parity, HHVM and Zend Engine Parity
- Homebrew, Homebrew
- Homestead, Laravel Homestead
- hooks, Capistrano Hooks
- hosting
- HPHPc compiler, PHP at Facebook
- HTML Purifier library, HTML
- HTML, sanitizing special characters, HTML
- htmlentities() function, HTML, Escape Output
- HTTP server
- human-readable stories, Behavior-Driven Development (BDD)
I
- identifiers, Stream Wrappers
- if keyword, PSR-2: Strict Code Style
- implements keyword, PSR-2: Strict Code Style
- import, definition of term, Import and Alias
- importing
- indentation, PSR-2: Strict Code Style
- inheritance, classical, Why We Use Traits
- input, sanitizing, Sanitize Input, Prepared Statements
- installation
- build from source, Build from Source-Create the php.ini file
- CentOS 7, CentOS 7
- development environment, Linux
- Homebrew, Homebrew
- MAMP (Mac, Apache, MySQL and PHP), MAMP
- OS X, OS X
- package managers, Package Managers
- Ubuntu 14.04 LTS, Ubuntu 14.04 LTS
- Windows, Windows
- Xcode command-line tools, XCode command-line tools
- interfaces
- interoperability methods
- interpreted languages, Zend OPcache
- interval specification, The DateInterval Class
- iterators, Generators
J
- just in time (JIT) compilers
M
- magic methods
- makeRange() method, Use a Generator
- MAMP (Mac, Apache, MySQL and PHP), MAMP
- maximum execution time, tuning, Max Execution Time
- mbstring extension, Character Encoding
- memory, tuning of, Memory
- Mercurial, Version Control
- method definition, PSR-2: Strict Code Style
- method names, PSR-1: Basic Code Style
- monolog/monolog logger, PSR-3: Logger Interface, Production
- multibyte strings, Multibyte Strings
N
- named placeholders, Prepared Statements
- names/naming
- namespaces, Namespaces-Autoloading, PSR-2: Strict Code Style, Namespaces
- autoloader standard, Autoloading
- benefits of, Why We Use Namespaces
- component, Namespaces
- declaring, Declaration, PSR-2: Strict Code Style
- example declaration, Namespaces
- global, Global namespace
- importing and aliasing, Import and Alias
- multiple imports, Multiple imports
- multiple in one file, Multiple namespaces in one file
- purpose of, Namespaces
- vendor namespace, Declaration
- vs. filesystems, Namespaces
- nesbot/carbon component, The nesbot/carbon Component
- New Relic, New Relic Profiler
- nginx
- Nginx
- non-root user, Nonroot User
P
- package managers, Package Managers
- package names, Vendor and Package Names
- Packagist, Find Components, Packagist Submission
- passwords
- PDO (PHP data objects) database extension, The PDO Extension
- PDO prepared statements, SQL queries
- performance issues, When to Use a Profiler
- period designator, The DateInterval Class
- PHP Code Sniffer (phpcs), PSR-2: Strict Code Style
- PHP community
- PHP Framework Interop Group (PHP-FIG)
- PHP Iniscan tool, The php.ini File
- PHP keywords, PSR-2: Strict Code Style
- PHP language
- as interpreted language, PHP at Facebook
- closures, Closures-Attach State
- converting to Hack, Convert PHP to Hack
- engines for, Present
- essential vs. nonessential features, Features
- evolution of, Present
- generators, Generators-Use a Generator
- history of, The New PHP
- HTTP server, Built-in HTTP server-Drawbacks
- interfaces, Code to an Interface-Code to an Interface
- namespaces, Namespaces-Autoloading
- official daft specification, Present
- PHP 7 release, Future
- traits, Traits-How to Use a Trait
- vs. Hack/HHVM, HHVM/Hack vs. PHP
- Zend OPcache, Zend OPcache-Use Zend OPcache
- PHP tags, PSR-1: Basic Code Style
- PHP-CS-Fixer, PSR-2: Strict Code Style
- PHP-FPM (PHP FastCGI Process Manager)
- php.ini file, The php.ini File
- PHPUnit, PHPUnit-Code Coverage
- placeholders, Write a PSR-3 Logger
- placeholders, named, Prepared Statements
- platforms as a service (PaaS)
- Pool Definitions, Pool Configuration
- prepared statements, Prepared Statements
- private repositories, Composer and Private Repositories
- profiling
- provisioning
- PSR (PHP standards recommendation)
- public code repositories, Version Control
- PUGs (PHP User Groups), Local PUG
- PuPHPet, PuPHPet
- Puppet, Puppet
S
- scan.php script, Implement scan.php
- schemes, Stream Wrappers
- Seige, Memory
- semantic versioning, Component installation
- server setup, Server Setup-Disable Passwords and Root Login
- server-side scripting, definition of term, Past
- session handling, tuning of, Session Handling
- shared servers, Shared Server
- Siege, When to Use a Profiler
- smarty/smarty template engine, Escape Output
- software dependencies, Software dependencies
- SPACE characters, PSR-2: Strict Code Style, PSR-2: Strict Code Style
- SpecBDD, Behavior-Driven Development (BDD)
- special characters
- specification, definition of term, Present
- spl_autoload_register() method, Autoloading
- SQL queries, SQL queries
- SSH key-pair authentication, SSH Key-Pair Authentication
- standards
- state, attaching/enclosing, Attach State
- static typing, definition of term, Future
- StoryBDD, Behavior-Driven Development (BDD)
- streams
- stress testing, Memory
- strings, multibyte, Multibyte Strings
- Supervisord, Monitor HHVM with Supervisord
- Suraski, Zeev, Past
- switch keyword, PSR-2: Strict Code Style
T
- TAB character, PSR-2: Strict Code Style
- targets, Stream Wrappers
- template engines, Escape Output
- test case, PHPUnit
- test runner, PHPUnit
- test suite, PHPUnit
- test-driven development (TDD), Test-Driven Development (TDD)
- testing
- behavior-driven development (BDD), Behavior-Driven Development (BDD)
- continuous testing, Continuous Testing with Travis CI
- importance of, Testing
- micro and macroscopic scales, What Do We Test?
- stress testing, Memory
- test-driven development (TDD), Test-Driven Development (TDD)
- timing of, When Do We Test?
- unit tests, Unit Tests
- with PHPUnit, PHPUnit-Code Coverage
- with Travis CI, Continuous Testing with Travis CI
- TitleCase format, PSR-1: Basic Code Style
- traits
- transactions, PDO support for, Transactions
- Travis CI, Continuous Testing with Travis CI
- try keyword, PSR-2: Strict Code Style
- tuning
- Twig template engine, Escape Output
- typing
V
- Vagrant, Vagrant
- Vaprobash, Vaprobash
- VARCHAR(255) database columns, User registration
- vendor names, Vendor and Package Names
- vendor namespace, Declaration
- version control
- virtual hosts, Virtual Host, Virtual host
- virtual machines, Local Development Environments
- virtual private servers (VPS), Virtual Private Server
- VirtualBox, VirtualBox
- visibilities, PSR-2: Strict Code Style