Skip to Content

Agile Web Application Development with Yii1.1 and PHP5 Table of Contents


Table of Contents

Preface
Chapter 1: Meet Yii
Chapter 2: Getting Started
Chapter 3: The TrackStar Application
Chapter 4: Iteration 1: Creating the Initial TrackStar Application
Chapter 5: Iteration 2: Project CRUD
Chapter 6: Iteration 3: Adding Tasks
Chapter 7: Iteration 4: User Management and Authentication
Chapter 8: Iteration 5: User Access Control
Chapter 9: Iteration 6: Adding User Comments
Chapter 10: Iteration 7: Adding an RSS Web Feed
Chapter 11: Iteration 8: Making it Pretty - Design, Layout, Themes, and Internationalization(i18n)
Chapter 12: Iteration 9: Modules - Adding Administration
Chapter 13: Iteration 10: Production Readiness
Index

  • Chapter 1: Meet Yii
    • Yii is easy
    • Yii is efficient
    • Yii is extensible
    • MVC architecture
      • The model
      • The view
      • The controller
    • Stitching these together: Yii request routing
      • Blog posting example
    • Object-relational mapping and Active Record
      • Active Record
    • The view and controller
    • Summary
  • Chapter 2: Getting Started
    • Installing Yii
      • Installing a database
    • Creating a new application
    • Hello, World!
      • Creating the controller
      • One final step
      • Reviewing our request routing
    • Adding dynamic content
      • Adding the date and time
      • Adding the date and time, a better approach
        • Moving the data creation to the controller
      • Have you been paying attention?
    • Linking pages together
      • Linking to a new page
      • Getting a little help from Yii CHtml
    • Summary
  • Chapter 3: The TrackStar Application
    • Introducing TrackStar
    • Creating user stories
      • Users
      • Projects
      • Issues
    • Navigation and page flow
    • Defining a data scheme
    • Defining our development methodology
      • Automated software testing
      • Unit and functional testing
      • Benefits of testing
      • Test-driven development
    • Testing in Yii
      • Unit tests
        • Installing PHPUnit
      • Functional tests
        • Installing Selenium
        • Running a quick example
      • Hello TDD!
    • Summary
  • Chapter 5: Iteration 2: Project CRUD
    • Iteration planning
      • Running our test suite
    • Creating the project table
      • Naming conventions
    • Creating the AR model class
      • Configuring Gii
      • Using Gii to create our Project AR class
      • Testing out our newly generated code
        • Creating the unit test file
        • Testing create
        • Testing read
        • Testing update and delete
      • Was all that testing really necessary?
    • Enabling CRUD operations for users
      • Creating CRUD scaffolding for projects
      • Creating a new project
        • Adding a required field to our form
      • Reading the project
      • Updating and deleting projects
      • Managing projects in admin mode
    • More on testing—fixtures
      • Configuring the fixture manager
      • Creating a fixture
      • Configuring this fixture for use
      • Specifying a test database
        • Using fixtures
    • Summary
  • Chapter 6: Iteration 3: Adding Tasks
    • Iteration planning
    • Running the test suite
    • Designing the schema
      • Defining some relationships
      • Building the database and the relationships
    • Creating the Active Record model classes
      • Creating the Issue model class
      • Creating the User model class
    • Creating the Issue CRUD operations
      • Using the Issue CRUD operations
    • Creating a new Issue
      • Adding the types drop-down menu
      • Getting the test in the "Red"
      • Moving From "Red" To "Green"
      • Moving Back To "Red"
      • Getting back to "Green" once again
      • Adding the issue type dropdown
      • Adding the status drop-down menu: Do it yourself
    • Fixing the owner and requester fields
      • Enforcing a project context
      • Implementing a filter
      • Adding a filter
      • Specifying the filtered actions
      • Adding some filter logic
      • Adding the project ID
      • Altering the project details page
      • Removing the project input form field
    • Returning back to the owner and requester dropdowns
      • Generating the data to populate the drop-down menu
      • Adding User and ProjectUserAssignment fixtures
      • Making one last change
    • Finishing the rest of the CRUD
      • Listing the issues
      • Altering the ProjectController
        • Altering the project view file
    • Making some final tweaks
      • Getting the status and type text to display
      • Adding the text display to the form
      • Changing the issue detail view
      • Getting the owner and requester names to display
      • Using relational AR
    • Making some final navigation tweaks
    • Summary
  • Chapter 7: Iteration 4: User Management and Authentication
    • Iteration planning
    • Running the test suite
    • Creating our User CRUD
      • Updating our common audit history columns
      • Adding a password confirmation field
      • Adding password encryption
    • Authenticating users using the database
      • Introducing the Yii authentication model
        • Changing the authenticate implementation
    • Updating the user last login time
      • Displaying the last login time on the home page
    • Summary
  • Chapter 8: Iteration 5: User Access Control
    • Iteration planning
    • Running our existing test suite
    • accessControl filter
    • Role-based access control
      • Configuring the authorization manager
      • Creating the RBAC database tables
      • Creating the RBAC authorization hierarchy
        • Writing a console application command
      • Assigning users to roles
      • Adding RBAC roles to projects
        • Adding RBAC business rules
        • Implementing the new Project AR methods
      • Adding Users To Projects
        • Altering the Project model class
        • Adding the new form model class
        • Adding the new action method to the project controller
        • Adding the new view file to display the form
        • Putting it all together
    • Checking authorization level
    • Summary
  • Chapter 9: Iteration 6: Adding User Comments
    • Iteration planning
    • Creating the model
    • Creating the Comment CRUD
    • Altering the scaffolding to meet requirements
      • Adding a comment
      • Displaying the form
    • Creating a recent comments widget
      • Introducing CWidget
        • More on relational AR queries in Yii
        • Completing the test
        • Creating the widget
    • Summary
  • Chapter 10: Iteration 7: Adding an RSS Web Feed
    • Iteration planning
    • A little background: Content Syndication, RSS, and Zend Framework
    • Installing Zend Framework
    • Using Zend_Feed
    • Creating user friendly URLs
      • Using the URL manager
        • Configuring routing rules
        • Removing the entry script from the URL
    • Adding the feed links
    • Summary
  • Chapter 11: Iteration 8: Making it Pretty - Design, Layout, Themes, and Internationalization(i18n)
    • Iteration planning
    • Designing with layouts
      • Specifying a layout
      • Applying and using a layout
    • Deconstructing the main.php layout file
      • Introducing the Blueprint CSS framework
        • Understanding the Blueprint installation
      • Setting the page title
      • Defining a page header
      • Displaying menu navigation items
      • Creating a breadcrumb navigation
      • Specifying the content being decorated by the layout
      • Defining the footer
    • Nesting the layouts
    • Creating themes
      • Building themes in Yii
      • Creating a Yii theme
      • Configuring the application to use a theme
    • Translating the site to other languages
      • Defining locale and language
      • Performing language translation
        • Performing message translation
        • Performing file translation
    • Summary
  • Chapter 12: Iteration 9: Modules - Adding Administration
    • Iteration planning
    • Modules
      • Creating a module
      • Using a module
      • Theming a module
        • Applying a theme
    • Restricting admin access
    • Adding a system-wide message
      • Creating the database table
      • Creating our model and CRUD scaffolding
      • Adding a link to our new functionality
      • Displaying the message to users
        • Importing the new model class for application-wide access
        • Selecting the most recently updated message
        • Adding a little design tweak
    • Summary
  • Chapter 13: Iteration 10: Production Readiness
    • Iteration planning
    • Logging
      • Message logging
      • Categories and levels
      • Adding a login message log
      • Message routing
    • Handling errors
      • Displaying errors
    • Caching
      • Configuring for cache
      • Using a file-based cache
      • Cache dependencies
      • Fragment caching
        • Declaring fragment caching options
        • Using fragment cache
      • Page caching
    • General performance tuning tips
      • Using APC
      • Disabling debug mode
      • Using yiilite.php
      • Using caching techniques
      • Enabling schema caching
    • Summary

Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Open Source Content Management Customer Relationship Management e-Commerce e-Learning Java Linux Servers Networking & Telephony PHP Web Graphics & Video Web Development
Enterprise BPEL Microsoft Oracle SOA Web Services
Other Packt Books .Net Web Graphics & Video Beginner Guides Cookbooks