CakePHP 1.3 Application Development Cookbook

Over 70 great recipes for developing, maintaining, and deploying web applications

CakePHP 1.3 Application Development Cookbook

Cookbook
Mariano Iglesias

Over 70 great recipes for developing, maintaining, and deploying web applications
$10.00
$39.99
RRP $23.99
RRP $39.99
eBook
Print + eBook
$12.99 p/month

Get Access

Get Unlimited Access to every Packt eBook and Video course

Enjoy full and instant access to over 3000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

+ Collection
Free Sample

Book Details

ISBN 139781849511926
Paperback360 pages

About This Book

  • Create elegant and scalable web applications using CakePHP
  • Leverage your find operations with virtual fields, ad-hoc queries, and custom find types
  • Add full internationalization support to your application, including translation of database records
  • Part of Packt's Cookbook series: Each recipe is a carefully organized sequence of instructions to complete the task as efficiently as possible

Who This Book Is For

If you are a CakePHP developer who wants to discover quick and easy ways to improve web applications, and to leverage all aspects of the framework, this book is for you. This book assumes that you already have knowledge of CakePHP, and general PHP development skills.

Table of Contents

Chapter 1: Authentication
Introduction
Setting up a basic authentication system
Using and configuring the Auth component
Allowing logins with username or e-mail
Saving the user details after login
Getting the current user's information
Using prefixes for role-based access control
Setting up Access Control Layer-based authentication
Integrating with OpenID
Chapter 2: Model Bindings
Introduction
Adding Containable to all models
Limiting the bindings returned in a find
Modifying binding parameters for a find
Modifying binding conditions for a find
Changing the JOIN type of one-to-one associations
Defining multiple associations to the same model
Adding bindings on the fly
Chapter 3: Pushing the Search
Introduction
Performing GROUP and COUNT queries
Using virtual fields
Building queries with ad-hoc JOINs
Searching for all items that match search terms
Implementing a custom find type
Paginating a custom find type
Implementing AJAX based pagination
Chapter 4: Validation and Behaviors
Introduction
Adding multiple validation rules
Creating a custom validation rule
Using callbacks in behaviors
Using behaviors to add new fields for saving
Using the Sluggable behavior
Geocoding addresses with the Geocodable behavior
Chapter 5: Datasources
Introduction
Improving the SQL datasource query log
Parsing CSV files with a datasource
Consuming RSS feeds with a datasource
Building a Twitter datasource
Adding transaction and locking support to the MySQL datasource
Chapter 6: Routing Magic
Introduction
Using named and GET parameters
Using routes with prefixes
Working with route elements
Adding catch-all routes for profile pages
Adding validation for catch-all routes
Creating custom Route classes
Chapter 7: Creating and Consuming Web Services
Introduction
Creating an RSS feed
Consuming a JSON service
Building REST services with JSON
Adding authentication to REST services
Implementing token-based authorization for API access
Chapter 8: Working with Shells
Introduction
Building and running a shell
Parsing command line parameters
Creating reusable shell tasks
Sending e-mails from shells
Non-interactive tasks with the robot plugin
Chapter 9: Internationalizing Applications
Introduction
Internationalizing controller and view texts
Internationalizing model validation messages
Translating strings with dynamic content
Setting and remembering the language
Chapter 10: Testing
Introduction
Setting up the test framework
Creating fixtures and testing model methods
Testing controller actions and their views
Using mocks to test controllers
Running tests from the command line
Chapter 11: Utility Classes and Tools
Introduction
Working with the Set class
Manipulating strings with the String class
Sending an e-mail
Detecting file types with MagicDb
Throwing and handling exceptions

What You Will Learn

  • Add authentication to an application to identify which controllers will need user access, using the Auth component and ACL component
  • Allow users to log in using either a user name, or an email, and let the system remember their account details
  • Enable and leverage the use of the Containable behavior to deal with model bindings
  • Make run time changes to model bindings for a better control of your model relationships
  • Perform relatively complex GROUP and COUNT queries using CakePHP's built in find types and use virtual fields for a cleaner approach to SQL based calculations
  • Creating custom find operations, and paginating its result using CakePHP's built in pagination support
  • Add multiple validation rules per field using built in validation rules in CakePHP
  • Allow users to search address records by proximity by adding location information to our own Address model using the Geocodable behavior
  • Implement your own datasource by providing a way to read from and post messages to a twitter account using OAuth as the authentication layer
  • Modify an existing datasource by adding better transaction support to the MySQL driver and implementing locking operations
  • Take advantage of the routing flexibility in CakePHP by creating your own route handlers
  • Build non interactive tasks that run in the command line, including the automation of tasks
  • Internationalize all areas of your application, including views and model records, to reach a wider audience

In Detail

CakePHP is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying web applications. While the framework has a lot of documentation and reference guides available for beginners, developing more sophisticated and scalable applications require a deeper knowledge of CakePHP features, a challenge that proves difficult even for well established developers.

The recipes in this cookbook will give you instant results and help you to develop web applications, leveraging the CakePHP features that allow you to build robust and complex applications. Following the recipes in this book you will be able to understand and use these features in no time.

We start with setting up authentication on a CakePHP application. One of the most important aspects of a CakePHP application: the relationship between models, also known as model bindings. Model binding is an integral part of any application's logic and we can manipulate it to get the data we need and when we need. We will go through a series of recipes that will show us how to change the way bindings are fetched, what bindings and what information from a binding is returned, how to create new bindings, and how to build hierarchical data structures. We also define our custom find types that will extend the three basic ones, allowing our code to be even more readable and also create our own find type, with pagination support. This book also has recipes that cover two aspects of CakePHP models that are fundamental to most applications: validation, and behaviors.

Authors

Table of Contents

Chapter 1: Authentication
Introduction
Setting up a basic authentication system
Using and configuring the Auth component
Allowing logins with username or e-mail
Saving the user details after login
Getting the current user's information
Using prefixes for role-based access control
Setting up Access Control Layer-based authentication
Integrating with OpenID
Chapter 2: Model Bindings
Introduction
Adding Containable to all models
Limiting the bindings returned in a find
Modifying binding parameters for a find
Modifying binding conditions for a find
Changing the JOIN type of one-to-one associations
Defining multiple associations to the same model
Adding bindings on the fly
Chapter 3: Pushing the Search
Introduction
Performing GROUP and COUNT queries
Using virtual fields
Building queries with ad-hoc JOINs
Searching for all items that match search terms
Implementing a custom find type
Paginating a custom find type
Implementing AJAX based pagination
Chapter 4: Validation and Behaviors
Introduction
Adding multiple validation rules
Creating a custom validation rule
Using callbacks in behaviors
Using behaviors to add new fields for saving
Using the Sluggable behavior
Geocoding addresses with the Geocodable behavior
Chapter 5: Datasources
Introduction
Improving the SQL datasource query log
Parsing CSV files with a datasource
Consuming RSS feeds with a datasource
Building a Twitter datasource
Adding transaction and locking support to the MySQL datasource
Chapter 6: Routing Magic
Introduction
Using named and GET parameters
Using routes with prefixes
Working with route elements
Adding catch-all routes for profile pages
Adding validation for catch-all routes
Creating custom Route classes
Chapter 7: Creating and Consuming Web Services
Introduction
Creating an RSS feed
Consuming a JSON service
Building REST services with JSON
Adding authentication to REST services
Implementing token-based authorization for API access
Chapter 8: Working with Shells
Introduction
Building and running a shell
Parsing command line parameters
Creating reusable shell tasks
Sending e-mails from shells
Non-interactive tasks with the robot plugin
Chapter 9: Internationalizing Applications
Introduction
Internationalizing controller and view texts
Internationalizing model validation messages
Translating strings with dynamic content
Setting and remembering the language
Chapter 10: Testing
Introduction
Setting up the test framework
Creating fixtures and testing model methods
Testing controller actions and their views
Using mocks to test controllers
Running tests from the command line
Chapter 11: Utility Classes and Tools
Introduction
Working with the Set class
Manipulating strings with the String class
Sending an e-mail
Detecting file types with MagicDb
Throwing and handling exceptions

Book Details

ISBN 139781849511926
Paperback360 pages
Read More

Recommended for You

CakePHP 2 Application Cookbook
$ 10.00
Magento PHP Developer's Guide - Second Edition
$ 10.00
CodeIgniter 1.7 Professional Development
$ 10.00
Magento PHP Developer’s Guide
$ 10.00