Question: I'm using the following regular expression.

```
regForUrl =/^((ftp|http|https):\/\/)(?:(www+\.)?)(?:([a-zA-Z0-9-]+\.))+([a-z]{2,3}\/)+(?:[\w\-\.\_\__\~\:\/\?\#\@\!\$\,\;\*\$\(\)\&\=\+\:\%]?)+$/;

```

Example URL = 'http://test.domainName.com.ab:5445/endUrl'.

This regex not accepting the above mentioned URL. If ":" occurs the regex returning false. Please solve this issue...

Answer: 
I use `Google_Client` in CakePHP - you shouldn't have to do anything special to use it. If it's installed via composer it's already in Composer's autoloader, you can call it directly.

Ex. In `composer.json` after running `./composer.phar require google/apiclient:"^2.7"` My require section lists the Google API:

```
"require": {
    "google/apiclient": "^2.7",

```

Make sure you run `./composer.phar install` if it wasn't already installed durring `require`.

Then in to use the library, I just call it directly, prefixed with `\` since it's not namespaced:

```
public function index()
{
    $client = new \Google_Client();

```

If you're curious how this works under the hood - Composer will generate all the information it needs to load classes durring `require` or `install` and sticks these in several files back in `vendor/composer`, such as `autoload_namespaces.php`, where it should automatically have added `Google_` to the list there, ex:

```
<?php

// autoload_namespaces.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    // Lots of class prefixes, but eventually:
    'Google_' => array($vendorDir . '/google/apiclient/src'),

```

Classes that are namespaced to industry standards like PSR-4 (like all modern PHP libs probably should be!) are probably in `autoloader_psr4.php` - and so on. It registers it's own autoloader in ClassLoader.php, and sticks a reference to this in `vendor/autoload.php` - which Cake calls essentially on near line 1 of
`webroot/index.php`:

```
require dirname(__DIR__) . '/vendor/autoload.php';

```

So in short - you don't need to worry about autoloading again so long as you're working through Composer.

Also - if you're able to use an IDE which helps with autocompletion of class namespaces, like PHPStorm, that might make things easier.
For libraries that specify autoload information, Composer generates a vendor/autoload.php file. You can simply include this file and start using the classes that those libraries provide without any extra work:

```
require __DIR__ . '/vendor/autoload.php';

```

For more references : <https://getcomposer.org/doc/01-basic-usage.md>