Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
The PEAR Installer Manifesto
The PEAR Installer Manifesto

The PEAR Installer Manifesto: The PEAR Installer maintainer shows you the power of this code management and deployment system to revolutionize your PHP application development

eBook
$26.98 $29.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

The PEAR Installer Manifesto

Chapter 2. Mastering PHP Software Management with the PEAR Installer

In this chapter, we learn how to turn PHP software into distributable PEAR packages. In September 2005, version 1.4.0 of the PEAR installer was released. This release was a milestone, marking the transformation of PEAR from a niche-market tool for installing small libraries distributed by pear.php.net to a full-fledged application installation tool. For the first time, it is possible to distribute large-scale applications, and even complete web-based database-intensive applications can be installed and configured in one step.

The PEAR installer now can be used to install traditional web-based applications like phpMyAdmin and non-PEAR libraries like the popular Smarty template engine (both happen to be installable through the http://pearified.com PEAR channel). Two of the primary design goals of the PEAR installer are to:

  • Make it possible to distribute application development across multiple development teams (i.e. stop re...

Distributing Libraries and Applications


The most important thing to understand is how the PEAR installer actually installs files. Most PHP developers distribute their applications as unzip-and-go archives. As such, we tend to assume that files will be in the exact same relative locations on the end user's machine that they are on our development machine. PEAR, however, is designed to be far more flexible than this.

For instance, it is common for shared web hosts to install a global copy of PEAR, but users can also install local copies and use the include_path from php.ini to choose local packages when available and global ones when they are not. In order to make this flexibility possible, PEAR groups and installs files by their type or file role.

Each file role has a corresponding configuration entry that defines the location at which all files of that file role will be installed. For instance, the php file role has a configuration variable named php_dir that defines the directory into which...

Using Versioning and Dependencies to Help Track and Eliminate Bugs


Versioning and dependencies are two features that every enterprise-level distribution system must support at a very high level. With both simple dependencies and advanced versioning features, the PEAR installer makes depending on external packages safer and easier than ever before.

Versioning

The most basic foundation of the PEAR installer is the concept of versioning. Versioning should be familiar to all of us in the form of "Software package version X.Y.Z" such as "PHP version 5.1.4". The basic idea is that older versions of software have a lower number. In other words, PHP version 4.0.6 is older than PHP version 4.1.1beta1, which is older than PHP version 4.1.1.

How does versioning help track and eliminate bugs? Imagine this scenario:

You are working on a Wiki, and allowing users to grab the source from your FTP site at any time and use it themselves. One of them finds a bug and reports, "It is doing this weird thing where...

Distribution and Upgrades for the End User


From the end user's perspective, one of the most complex tasks faced when using an unzip-and-go package is upgrading. In the closed-source world, newer versions of a package break something that used to work with the old package as a means of forcing their users to upgrade, which sometimes requires significant work.

In the open-source world, many developers continue to follow this model by introducing exciting new features that mean you can no longer use the old version. The actual upgrade process usually means overwriting the current version with the new files, possibly with new configuration needed. In addition, it opens up the scary prospect of completely breaking a live site, prompting the need for some kind of backup system.

By using the PEAR installer, all of these fears and dangers are a thing of the past. It is simple to upgrade to a new version by using:

$ pear upgrade Package

It is just as simple to downgrade to a previous version of...

An Overview of package.xml Structure


package.xml contains all of the information the PEAR installer needs to install and configure PEAR packages. By leveraging standards such as XML and XSchema to document package structure (http://pear.php.net/dtd/package1.xsd and http://pear.php.net/dtd/package2.xsd have full definitions of package.xml 1.0 and package.xml 2.0 respectively), PEAR opens up future programming possibilities that would not be available otherwise. For instance, using XSchema allows future extensibility of package.xml using XML namespaces to provide custom functionality.

When discussing package.xml, it is important to understand both the commonality and the differences between package.xml 1.0 and package.xml 2.0. The package.xml 2.0 is a superset of package.xml 1.0. In other words, it is possible to represent every single possible package.xml version 1.0 as a package.xml 2.0, but there is a large set of package.xml 2.0 that cannot be reduced to unique package.xml 1.0.

The best...

Tags Shared between package.xml 1.0 and 2.0


If you have a basic understanding of package.xml 1.0 and just want to see what has changed in package.xml 2.0, it is best to skim the next few sections. Differences are always presented at the beginning of each section, followed by an in-depth exploration of the reasoning behind the changes.

Before launching into the advanced new features of package.xml 2.0, it is important to explore the tags and attributes that have been carried over from package.xml 1.0 that both formats have in common. Most tags are unchanged. A few have either added information or changed their name slightly, and others have been completely redesigned. Let's get started.

Package Metadata

Both package.xml versions provide similar package metadata. Some basic information that must be present in any package includes:

  • Package name/channel

  • Maintainers (authors)

  • Package description

  • Package summary (one-line description)

Most of this information remains unchanged from release to release...

New Tags in package.xml


package.xml 2.0 introduced the new tags<phprelease>, <extsrcrelease>, and<extbinrelease> to differentiate between the different kinds of packages the PEAR installer handles. package.xml 2.1 introduces<zendextsrcrelease> and <zendextbinrelease> in order to differentiate between regular PHP extensions and Zend extensions like xdebug (http://pecl.php.net/xdebug).

You may have noticed that the primary tag in package.xml 1.0 is named<filelist>, whereas the primary tag in package.xml 2.0 is named<contents>. This change came about as a result of a simple feature request. When PEAR 1.3.3 was popular, the need to customize installations grew; more and more attributes and information were crammed into the<file> tag. The platform attribute tells the installer that a file should only be installed on a particular platform, such as UNIX or Windows. This is used in the PEAR package in order to install the pear command using a schell...

File/Directory Attributes: name, role, and baseinstalldir


The<file> and<dir> tags have a number of options available to them. Both tags require a name attribute, defining the name of the element as located on disk. Unlike an operating system, package.xml does not allow empty directories. All<dir> tags must contain at least one<file> tag. As described in the previous section, there are two ways to describe the location of a file in package.xml, either with a complete relative path separated by the UNIX path separator /:

<file role="php" name="foo/test.php"/>

Or, alternately as:

<dir name="foo">
<file role="php" name="test.php"/>
</dir>

All files must have a role attribute. This attribute tells the installer how to handle a file. The default list of allowed file roles is:

Default File Roles

 

Role

Description

php

PHP script files, like "PEAR.php"

data

Data files used by the script (read-only)

doc

Documentation files

test

Test scripts...

Summary


In this chapter, we discovered the basics of how the PEAR installer's internals work through the lens of package.xml's structure. First, we explored the basic design philosophies of the PEAR installer, and how PEAR packages differ from the old-fashioned unzip-and-go approach. We learned about PEAR's configuration options, and the versatile ways in which PEAR deals with libraries versus applications.

Next, we explored the importance of versioning in controlling the quality of packages installed, and the importance of dependencies, and how the PEAR installer manages this important link between libraries and applications. Then, we explored how easy it is to upgrade when using the PEAR installer, as compared to upgrading traditional unzip-and-go applications.

After this, we dove headfirst into the structure of package.xml, learning how package metadata such as the package name, authors, release notes, and changelog are organized. This was coupled with a look at how critical installation...

Left arrow icon Right arrow icon

Key benefits

  • Learn how to effectively organize your application development from the creator of the latest versions of the PEAR Installer, version 1.4.0 onwards
  • Bring the power of versioning and rollbacks to your live website
  • Embed the PEAR Installer in your web applications to manage plug-ins from a remote server

Description

PEAR stands for PHP Extension and Application Repository, and its primary purpose is to support code re-use. PEAR provides both an advanced installer and a code repository at http://pear.php.net. PEAR code is organized into discrete re-usable components called packages. A package consists of a group of files and a descriptor file called package.xml that contains metadata about the package's contents, such as the package version, any special dependencies, and textual information such as the package description and authors. The software that transforms a package from an inert grouping of files into a dynamic software package is called the PEAR Installer and is itself a PEAR package. In other words, the PEAR Installer can be used to upgrade itself. It truly is a very powerful application. In short, the PEAR Installer is one of the most effective tools for managing a high-quality software library, high-quality applications, or high-quality websites. This book will show you a new way of organizing your PHP development, by leveraging the full power of the PEAR Installer. In a sense, the PEAR Installer is a step above a software design pattern, a meta-development pattern that can be used to systematically organize all of your PHP development. You will learn how to organize your code into packages using the package.xml format. You will learn about the revolutionary new PEAR Channel concept, and how to safely and reliably depend on external PHP libraries from sources such as pear.php.net and other PEAR channels. You will learn about the PEAR_PackageFileManager package, and how to customize individual installations of your PHP code through file roles, file tasks, and post-installation scripts. In addition, you will learn how to use the power of PEAR to manage your web projects with the PEAR installer to bring the power of versioning and rollbacks to your live website. The synergy of the PEAR Installer and a revision control system like CVS or Subversion is also explored in depth. Next, you will learn how to set up your own PEAR Channel for distributing PHP applications, both open-source and proprietary closed-source PHP applications that can be secured using technology already built into the PEAR Installer. Finally, you will learn how to embed the PEAR Installer inside your own web application in order to manage plug-ins from a remote server. The book covers in detail designing a custom plug-in system for a fictitious blog application. The plug-in system is used to manage templates, and the PEAR Installer is used to manage the details of querying the remote server for templates, handling dependencies between versioning, and doing the actual installation process as well.

Who is this book for?

The book is not just for PHP developers who want to understand how the PEAR Installer works, and what it can do for them, but more generally for PHP developers seeking a better way to deploy their applications and manage updates. It does assume that you have a good working knowledge of PHP development, and are dealing with projects of a sufficient scale and complexity to warrant an investment in a structure process.

What you will learn

  • What the PEAR Installer is, and what it can do for you
  • Organizing your code into packages using the package.xml format
  • Customizing individual installations of your PHP applications through file roles, file tasks, and post-installation scripts
  • Using the PEAR installer to bring the power of versioning and rollbacks to your live website
  • Getting the PEAR Installer and source control repository working together
  • Setting up your own PEAR Channel for distributing your PHP applications
  • Embedding the PEAR Installer inside your own web application to manage plug-ins from a remote server
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 30, 2006
Edition : 1st
Language : English
ISBN-13 : 9781904811190
Category :
Languages :

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : Oct 30, 2006
Edition : 1st
Language : English
ISBN-13 : 9781904811190
Category :
Languages :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Table of Contents

6 Chapters
Acquiring PEAR: What is it and How do I Get It? Chevron down icon Chevron up icon
Mastering PHP Software Management with the PEAR Installer Chevron down icon Chevron up icon
Leveraging Full Application Support with the PEAR Installer Chevron down icon Chevron up icon
Clever Website Coordination Using the PEAR Installer Chevron down icon Chevron up icon
Releasing to the World: PEAR Channels Chevron down icon Chevron up icon
Embedding the PEAR Installer: Designing a Custom Plug-In System Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.3
(3 Ratings)
5 star 33.3%
4 star 33.3%
3 star 0%
2 star 0%
1 star 33.3%
Brett Bieber Dec 14, 2006
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I recently finished a book on the PEAR installer written by Greg Beaver. The book itself is an excellent read for anyone who develops installable PHP libraries or applications, and one I would highly recommend for anyone interested in building small to large PHP web applications.Throughout the book, Greg demonstrates the complex features of the PEAR installer and package description file (package.xml) to guide you through understanding methods of distributing, installing, and maintaining PHP (and other) projects. The book is filled with real world examples and working applications from the guy who (seriously) 'wrote the book' on the PEAR installer.To anyone who is building distributed PHP applications or reusable libraries, this book is a must have for understanding release deployment strategies and how they are managed with powerful ease. The author knows his stuff, and has used every one of the examples within real word applications. The book has everything from "Hello World" installable applications to a full blown source code repository and distribution system through PEAR channels.With the book you will have all of the necessary information to build and maintain your complex PHP applications and easily distribute them across many servers, clients, or the open source community.If you're at the point in your application development where the unzip-and-go distribution method has reached its limit (typically the first bug after the first zip), the time has come to start building installable PEAR packages and to take advantage of all the capabilities the PEAR installer offers.Despite maintaining my own PEAR channel server (...........) for over a year now, I still found plenty of information to continue the ease with which the PEAR installer offers. So even if you are an experienced PEAR developer, the book is still a good read and shelf reference.I highly recommend the book, check it out.
Amazon Verified review Amazon
Travis Swicegood Jun 11, 2007
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
"Isn't PEAR just a bunch of packages you can install?" That's the question you'll receive most of the time if you ask a PHP developer if his software can be installed through the PEAR Installer. There's been a lot of work happening in PEAR that's culminated most recently in the PEAR elections and the announcement of Pyrus - PEAR 2. A major force behind all of these changes, including work on the PEAR Installer, is Greg Beaver. With this book, he can claim "he wrote the book on PEAR". Not that anyone could have disagreed with him before getting this book published. :-)This past weekend I read through the PEAR Installer Manifesto. For anyone who's not familiar the PEAR installer and how it can be used in projects outside of PEAR, I would point them to this book. It's only six chapters long, but it walks through the ways to use the PEAR Installer to enhance your projects - large or small, open or closed source, free or pay. This book covers the basics of what the PEAR Installer is, how to use it to distribute your own packages, and explains how to deploy a website using the installer. The book closes out with the two chapters that make this book a must read to someone already familiar with the PEAR Installer, but not familiar with what it is capable of: a chapter on PEAR channels and one on embedding the PEAR installer.A PEAR channel isn't a difficult thing to setup; there are blog posts aplenty on the topic. This chapter fill in the gaps in those posts answering the "why" to how things are done. I've setup my own channel before, but I hadn't investigated the internals to figure out exactly how everything ticked. Chapter 5 - Releasing to the World: PEAR Channels, fills in the gaps and gives you a thorough understanding of what makes a channel tick.Chapter 6 - Embedding the PEAR Installer: Designing a Custom Plug-In System, discusses several methods of handling plug-in systems then demonstrates how to create one using the PEAR Installer as a base. This chapter really starts to show exactly how powerful the installer can be once you start to re-purpose it, making it more than the command line tool we all use to download and install code. Thinking of the possibilities this introduced, I actually got giddy. Yes, I know... I'm a geek.This is a four star rating, so there were a few things that weren't exactly what I had hoped for. I hoped this would serve as a full reference to the installer. While this book takes you a lot of great jumping off points, it doesn't have the thoroughness I wanted. There are areas where the complexity of the code you're calling isn't covered in depth and you're left with a "this is all you'll need to know for this task" type comment. It took a visit to Greg's PEAR channel to fully understand how to package a custom file role. The book demonstrated the required PHP for the role and showed the custom XML, but didn't explicitly state that they were to be packaged together or how they were to be packaged. An appendix offering an in-depth overview of the code related to the installer would be a great addition to this book. With the recent news of Pyrus, that might be outdated before it could be ready though.I would have liked to have seen a more in-depth comparison to competing methods of building/packaging software. Instead, the only alternative that is discussed at any length is "unzip and go". It would have been interesting to see the comparison of the PEAR Installer to a traditional build system - such as PHP's phing or Java's Ant - and to explore using the installer inside a phing/Ant environment and how they could compliment each other. For example, using phing to handle the build process, while using PEAR channels and the installer to handle distribution and installation.This book is definitely worth the read for anyone interested in the PEAR Installer and understanding what it is capable of. The absence of a full reference to the installer code and no mention of viable alternatives to handle packaging are the only things that kept me from rating this book at 5 stars.
Amazon Verified review Amazon
PJS5 Aug 11, 2010
Full star icon Empty star icon Empty star icon Empty star icon Empty star icon 1
I bought this book because I found PEAR rather confusing. The first time I read it I was bewildered so I thought I must have missed something and read it again but found myself none the wiser. I was hoping it would clarify things, teach me how to create my own PEAR packages and how to use PEAR to deploy apps etc. Instead the book seems to just talk about how great and simple PEAR is. It prefers to talk about PEAR in a general sense, offering no real guidance on how to actually use it for anything. The instruction that is present is very basic and already prominent on the PEAR website. A complete waste of time.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the digital copy I get with my Print order? Chevron down icon Chevron up icon

When you buy any Print edition of our Books, you can redeem (for free) the eBook edition of the Print Book you’ve purchased. This gives you instant access to your book when you make an order via PDF, EPUB or our online Reader experience.

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela