Index
A
- about page
- scenario, writing / Writing a scenario for the about page
- scenario, executing / Seeing it in action
- headless browser, versus zombie browser / Headless versus zombie
- Selenium2 controller, using for automated tests / Using the Selenium2 controller for automated tests
- Behavior Driven Development (BDD), implementing / The about page does not follow BDD
- user's details, displaying / A scenario to show the user's details
- Given step / A scenario to show the user's details
- When step / A scenario to show the user's details
- Then step / A scenario to show the user's details
- user's details scenario, implementing / Implementing the user's details scenario
- user's details scenario, testing / Testing the scenario
- acceptance test flow
- acceptance tests
- creating / Step three – creating an acceptance test
- AliceBundle / Introducing AliceBundle
- Amazon Web Services (AWS)
- about / Amazon Web Services
- Apache
- installing / Installing Apache
- Apache Ant
- using / Orchestrating the build process
- AppBundle
- versus custom bundles / Custom bundles versus AppBundle
- assets
- organizing / How assets are organized
- managing / Asset management
- attachment feature
- adding, to Task entity / Adding an attachment feature to the Task entity
- authentication / Authentication
- authorization / Authorization
- autowiring
- service, loading / How to create and load services via autowiring
- service, creating / How to create and load services via autowiring
- URL / How to create and load services via autowiring
B
- backend logo
- changing / Changing the backend logo
- Behat
- about / Is BDD a replacement for TDD?, What is Behat?
- installing / Installing and configuring Behat
- configuring / Installing and configuring Behat
- Gherkin / Gherkin – the common language
- Behavior Driven Development (BDD)
- about / Getting started with BDD
- comparing, with Test Driven Development (TDD) / Is BDD a replacement for TDD?
- implementing, for about page / The about page does not follow BDD
- implementing, with Codeception / TDD and BDD with Codeception
- Bootstrap
- about / What is Bootstrap?
- build process
- orchestrating / Orchestrating the build process
- reference link / Orchestrating the build process
- executing / Running the first build
- GitHub, used for alerting Jenkins / How does GitHub alert Jenkins about new pushes?
- bundle
- anatomy / Anatomy of a bundle
- generating / Generating a new bundle
- best practices / Best practices
- bundles
- installing / Installing bundles created by others
- business logic
- location / So where does the business logic live?
- features / Some business logic features and scenarios
- scenarios / Some business logic features and scenarios
C
- cache
- about / Definition of a cache
- characteristics / Characteristics of a good cache
- gateway cache / Caches in a Symfony project
- doctrine cache / Caches in a Symfony project
- in Symfony project / Caches in a Symfony project
- Cache Hit
- about / Definition of a cache
- Cache Miss
- about / Definition of a cache
- clay
- molding / Let's mold the clay
- Codeception
- about / Is BDD a replacement for TDD?, Codeception – the BDD style testing framework
- installing / Installing the Codeception framework
- bootstrapping / Bootstrapping Codeception
- test suits / Test suits
- testers / The testers
- tests, adding / Adding sample tests
- tests, executing / Running the tests
- Test Driven Development (TDD), implementing / TDD and BDD with Codeception
- Behavior Driven Development (BDD), implementing / TDD and BDD with Codeception
- functional test, creating / Step one – creating a functional test
- missing code, developing / Developing the missing code
- unit tests, creating / Step two – creating the unit tests, Creating unit tests
- database, setting up for test environment / Setting up the database for a test environment in the right way
- database, dropping / Dropping and recreating the database for each test
- database, recreating / Dropping and recreating the database for each test
- showAction() method, implementing / Writing the code to pass the test
- functional test, executing / Running functional and unit tests
- unit tests, executing / Running functional and unit tests
- acceptance test, creating / Step three – creating an acceptance test
- error handling / On the CI side of the story
- CodeSniffer
- using / Sniff Symfony codes
- commands
- creating / Creating and registering commands
- registering / Creating and registering commands
- creating, for tasks / Creating commands for tasks
- configuration / The configuration part
- execution / The execution part
- interactivity, adding / Adding interactivity to commands
- console helpers / Console helpers
- commenting system
- Dashboard, creating / The dashboard's contents
- Composer
- about / Composer and Packagist
- downloading / Composer and Packagist
- commands / Composer and Packagist
- used, for installing Symfony / Installing Symfony via Composer
- conditional templates
- creating / Conditional templates
- config file
- defining, for custom environment / The config file
- configuration files
- processing / Processing configuration files
- console helpers
- about / Console helpers
- using / Console helpers
- Content Management Systems (CMS) / Influenced by Symfony
- continuous integration (CI)
- need for / Do I need CI?
- Continuous Integration (CI)
- importance / The importance of Continuous Integration
- Controller/View interaction
- about / Controller/View interaction
- controllers
- using, with dynamic templates / Dynamic templates and controllers
- Create, Read, Update, and Delete (CRUD)
- about / Make it dynamic
- CRUD
- generating / Generating CRUD
- curl / Composer and Packagist
- custom bundles
- versus AppBundle / Custom bundles versus AppBundle
- custom environment
- creating / Creating a new environment
- config file, defining / The config file
- front controller, defining / The front controller
D
- Dashboard, commenting system
- creating / The dashboard's contents
- statistics about tasks, displaying / Visual blocks that provide statistics about tasks
- feature file, creating for finished tasks block / A feature file for the finished tasks block
- finished tasks block, implementing / Implementing the finished tasks block
- Dashboard controller, implementing / Implementing the dashboard controller
- dashboard page
- expiration, setting / Set expiration for dashboard page
- Dashboard template
- about / The Dashboard template
- data-fixtures
- generating / Generating automated data fixtures
- AliceBundle / Introducing AliceBundle
- creating, Alice used / Creating data fixtures with Alice
- Alice, relationship with / Relationship with Alice
- login redirection, setting up / Setting up the login redirection
- database
- setting up, for test environment / Setting up the database for a test environment in the right way
- dropping / Dropping and recreating the database for each test
- recreating / Dropping and recreating the database for each test
- database configurations
- checking / Database configurations
- data fixtures
- creating / Creating data fixtures, Data fixtures
- loading / Loading data fixtures
- Dependency Injection Container
- Dev environment
- Doctrine's events
- Doctrine annotation
- URL / Generating an entity
- doctrine cache
- about / Caches in a Symfony project, Doctrine cache
- implementing / Putting it all together
- Doctrine extensions
- dynamic templates
- creating / Make it dynamic
- controllers, using / Dynamic templates and controllers
E
- Edge Side Includes (ESI)
- for selective caching / ESI for selective caching
- about / ESI for selective caching
- Elastic Compute Cloud (EC2)
- about / Elastic Compute Cloud
- instance, creating / Creating a new instance
- Enhanced Entity-Relation Diagram
- entity
- generating / Generating an entity, Generating entities
- adding / Adding a new entity
- entity creation
- or Model creation, selecting between / Choosing between creating a Model or entity
- Entity Relationship Diagrams (ERDs)
- about / Reviewing the facts and building entity relationships
- URL / Reviewing the facts and building entity relationships
- creating, MySQL Workbench used / Creating ERDs using MySQL Workbench
- tables, creating / Creating actual tables from a diagram
- entity relationships
- environment configuration file
- environments
- event dispatchers
- event listeners
- events
F
- faker
- feature files
- defining / Defining and prioritizing features
- prioritizing / Defining and prioritizing features
- files
- uploading, with SonataMediaBundle / Uploading files with SonataMediaBundle
- forms
- modifying / Modifying the forms
- Forward Engineering
- FOSUserBundle
- users, handling with / Handling users with FOSUserBundle
- security, settings / Security settings
- configurations, adding / Adding the required configurations to FOSUserBundle
- routes, adding / Adding routes
- tables, adding / Updating the tables
- simple road test / A simple road test
- integrating, to admin area / Integrating FOSUserBundle into the admin area
- SonataUserBundle, installing / Installing SonataUserBundle
- SonataUserBundle, configuring / SonataUserBundle configuration
- routes, updating / Updating the routes
- security, setting / Setting the security
- installation, checking / Checking the installation
- SonataUserBundle in charge, putting / Putting SonataUserBundle in charge
- front controller
- defining, for custom environment / The front controller
- functional test
- creating / Step one – creating a functional test
- functional tests
- creating / Running functional and unit tests
G
- gateway cache
- about / Caches in a Symfony project
- using / Using the Symfony reverse proxy cache
- expiration, setting for dashboard page / Set expiration for dashboard page
- validation strategy / Validation strategy
- expiration and validation strategies, implementing together / How to mix expiration and validation strategies
- implementing / Putting it all together
- Gherkin
- about / Gherkin – the common language
- GitHub
- used, for alerting Jenkins / How does GitHub alert Jenkins about new pushes?
- Goutte
- about / Seeing it in action
H
- headless browser
- versus zombie browser / Headless versus zombie
- HTTP cache header
I
- instance
- creating, in Elastic Compute Cloud (EC2) / Creating a new instance
- interactivity
- adding, to commands / Adding interactivity to commands
J
- JavaScript Object Notation (JSON)
- about / The big picture
- Jenkins
- installing / Installing Jenkins
- security, setting up / Setting up security and installing plugins in Jenkins
- plugins, installing / Setting up security and installing plugins in Jenkins
- configuring / Configuring Jenkins
- URL / Installing PHP tools
- job, creating / Creating a new job in Jenkins
- alerting, with GitHub / How does GitHub alert Jenkins about new pushes?
L
- login redirection, data-fixtures
- tests, creating for new controller / Creating tests for the new controller
- Dashboard Controller, creating / Creating the Dashboard Controller
- dashboard, securing / Securing the dashboard
M
- MAVA project
- features / The features we need for this project
- about / More information about the project
- facts, reviewing / Reviewing the facts and building entity relationships
- menu
- configuring / Creating your first menu
- rendering, in template / Rendering the menu in a template
- Minimum Viable Product (MVP)
- Mink
- about / Is BDD a replacement for TDD?
- acceptance test flow / More about the acceptance test flow in Mink
- Mink objects
- Driver class / More about the acceptance test flow in Mink
- Session object / More about the acceptance test flow in Mink
- DocumentElement / More about the acceptance test flow in Mink
- NodeElement / More about the acceptance test flow in Mink
- Model-View-Controller (MVC) design pattern / Influenced by Symfony
- Model creation
- or entity creation, selecting between / Choosing between creating a Model or entity
- MopaBootstrapBundle
- about / MopaBootstrapBundle
- Bootstrap, configuring / Bootstrap configuration
- MVC
- about / The big picture with MVC
- MySQL
- installing / Installing MySQL and PHP
- MySQL Workbench
- about / Reviewing the facts and building entity relationships
- URL / Reviewing the facts and building entity relationships
- used, for creating Entity Relationship Diagrams (ERDs) / Creating ERDs using MySQL Workbench
N
- navigation
- about / To navigate or not to navigate
- notification business logic
- about / The notification business logic
- event dispatchers, implementing / Events, event dispatchers, and event listeners
- event listeners, implementing / Events, event dispatchers, and event listeners
- events, implementing / Events, event dispatchers, and event listeners
- Notifier event listener, adding / The Notifier event listener
- notification system
- adding / Adding a notification system
- time tracking properties, adding / Adding time tracking properties
- Notifier event listener
- adding / The Notifier event listener
O
- Object Relational Mapper (ORM)
- about / Make it dynamic
P
- Packagist
- URL / Installing PHP tools
- packagist
- about / Composer and Packagist
- URL / Composer and Packagist
- PHP
- installing / Installing MySQL and PHP
- PhpMyAdmin
- PHP tools
- installing / Installing PHP tools
- reference link / Installing PHP tools
- Symfony, using / Sniff Symfony codes
- PHPUnit
- about / Is BDD a replacement for TDD?
- Prod environment
- Project entity
- relationship between, Team and User entity / The Team entity
R
- relationship
- adding / Adding a new relationship
- request/response life cycle
- about / The big picture
S
- selective caching
- with Edge Side Includes (ESI) / ESI for selective caching
- Selenium2
- about / Headless versus zombie
- Selenium2 controller
- using, for automated tests / Using the Selenium2 controller for automated tests
- URL / Using the Selenium2 controller for automated tests
- service
- creating / How to create a service
- benefits / How are services beneficial to our projects?
- calling / How to call a service
- configuring / How to configure a service
- avoiding, inside bundle / Why didn't we import services inside the bundle?
- creating, via autowiring / How to create and load services via autowiring
- loading, via autowiring / How to create and load services via autowiring
- organizing, with tags / Organizing services with tags
- Simple Email Service (SES)
- about / Simple Email Service
- setting up / Simple Email Service
- Jenkins, configuring / Configuring Jenkins
- Software as a Service (SaaS)
- about / Amazon Web Services
- software designing
- Bottom-UP approach / Reviewing the facts and building entity relationships
- Top-Down approach / Reviewing the facts and building entity relationships
- Sonata
- project / The Sonata project
- project, URL / The Sonata project
- bundle, configuring / Installing and configuring Sonata bundle
- bundle, installing / Installing and configuring Sonata bundle
- contents, adding to dashboard / Adding contents to the dashboard
- admin feature for entities with relations, creating / Creating admin feature for entities with relations
- SonataMediaBundle
- files, uploading / Uploading files with SonataMediaBundle
- URL / Uploading files with SonataMediaBundle
- attachment feature, adding to Task entity / Adding an attachment feature to the Task entity
- Sonata Project
- SonataUserBundle
- installing / Installing SonataUserBundle
- configuring / SonataUserBundle configuration
- sophisticated bundles
- about / Sophisticated bundles
- Symfony
- need for / Why Symfony?
- influence / Influenced by Symfony
- URL / Influenced by Symfony
- future / How bright is the future?
- installing, ways / Installation
- installing, via Composer / Installing Symfony via Composer
- road map / The road map
- road map, URL / The road map
- installation, checking / Checking the installation
- URL, for best practices / Best practices
- using / Sniff Symfony codes
- security, orgaizing / How security is organized in Symfony?
- authentication / Authentication
- authorization / Authorization
T
- tables
- creating, from Entity Relationship Diagrams (ERDs) / Creating actual tables from a diagram
- tags
- used, for organizing service / Organizing services with tags
- Task entity
- attachment feature, adding / Adding an attachment feature to the Task entity
- tasks
- commands, creating / Creating commands for tasks
- Team entity
- creating / Team and team members
- relationship between, Project and User entity / The Team entity
- templates
- creating, with TWIG / Creating templates with TWIG
- Controller/View interaction / Controller/View interaction
- conditional templates, creating / Conditional templates
- dynamic templates, creating / Make it dynamic
- database configurations, checking / Database configurations
- entity, generating / Generating an entity
- bundles, installing / Installing bundles created by others
- organizing / How templates are organized
- overriding / Overriding templates
- profile-related templates / Profile-related templates
- Test Driven Development (TDD)
- about / Getting started with BDD
- comparing, with Behavior Driven Development (BDD) / Is BDD a replacement for TDD?
- implementing, with Codeception / TDD and BDD with Codeception
- Test environment
- TWIG
- used, for creating templates / Creating templates with TWIG
- about / Creating templates with TWIG
U
- unit tests
- User Acceptance Test (UAT)
- user dashboard
- about / User dashboard
- User entity
- relationship between, Team and Project entity / The Team entity
V
- VirtualBox
Z
- Zombie.js
- about / Headless versus zombie
- zombie browser
- versus headless browser / Headless versus zombie