1. Go to this page and download the library: Download erwane/cakephp-contact library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
erwane / cakephp-contact example snippets
// in src/Application.php
use Cake\Core\Exception\MissingPluginException;
public function bootstrap(): void
{
// Load Contact plugin
try {
$this->addPlugin(\Contact\Plugin::class);
} catch (MissingPluginException $e) {
debug($e->getMessage());
}
}
// in table file
use Cake\Database\Schema\TableSchemaInterface;
use Cake\Orm\Table;
class UsersTable extends Table
/**
* {@inheritDoc}
*/
protected function _initializeSchema(TableSchemaInterface $schema): TableSchemaInterface
{
$schema->setColumnType('phone_number', 'phonenumber')
->setColumnType('mobile_number', 'phonenumber');
return $schema;
}
// in config/bootstrap.php
// or after loaded user preference or website country
use Cake\Database\TypeFactory;
use Contact\Database\Type\PhoneNumberType;
$phoneNumberType = new PhoneNumberType();
$phoneNumberType->setDefaultCountry('BE');
TypeFactory::set('phonenumber', $phoneNumberType);
// in validation method
public function validationDefault(Validator $validator)
{
$validator->setProvider('contact', 'Contact\Validation\ContactValidation');
$validator->add('phone_number', [
'number' => [
'provider' => 'contact',
'rule' => ['phone'],
],
]);
}
// You can pass country argument
$validator->add('phone_number', [
'number' => [
'provider' => 'contact',
'rule' => ['phone', 'ES'],
],
]);
// In src/AppView.php
public function initialize(): void
{
$this->loadHelper('Contact.Contact');
}
// in template file
echo $this->Contact->phone($entity->phone_number);
// Can pass options (see Utility/Phone::format() help)
echo $this->Contact->phone($entity->phone_number, [
'country' => 'BE',
'format' => 'uri',
]);