Руководство по PHP
2014-05-16
©
1997-2014
Группа документирования PHP
- Авторские права
- Руководство по PHP
- Приступая к работе
- Установка и настройка
- Справочник языка
- Основы синтаксиса
- Типы
- Переменные
- Константы
- Выражения
- Операторы
- Управляющие конструкции
- Функции
- Классы и объекты
- Пространства имен
- Исключения
- Generators
- Ссылки. Разъяснения
- Предопределённые переменные
- Предопределённые исключения
- Встроенные интерфейсы и классы
- Контекстные опции и параметры
- Поддерживаемые протоколы и обработчики (wrappers)
- Безопасность
- Вступление
- Общие рассуждения
- Если PHP установлен как CGI
- Если PHP установлен как модуль Apache
- Безопасность файловой системы
- Безопасность баз данных
- Сообщения об ошибках
- Использование глобальных переменных (Register_Globals)
- Данные, введенные пользователем
- Волшебные кавычки
- Сокрытие PHP
- Необходимость обновлений
- Отличительные особенности
- Справочник функций
- Изменение поведения PHP
- Обработка аудио форматов
- Службы аутентификации
- Расширения для работы с командной строкой
- Расширения для сжатия и архивации
- Обработка кредитных карт
- Криптографические расширения
- Расширения для работы с базами данных
- Расширения для работы с датой и временем
- Расширения для работы с файловой системой
- Поддержка языков и кодировок
- Обработка и генерация изображений
- Расширения для работы с почтой
- Математические расширения
- Генерация нетекстовых MIME форматов
- Расширения для управления процессами программ
- Другие базовые расширения
- Другие службы
- Расширения для работы с поисковыми системами
- Расширения для работы с серверами
- Расширения для работы с сессиями
- Обработка текста
- Расширения, относящиеся к переменным и типам
- Веб-сервисы
- Расширения только для Windows
- Обработка XML
- Ядро PHP: Руководство хакера
- Preface
- Memory management
- Working with Variables
- Writing Functions
- Writing Classes
- Working with Resources
- Working with INI settings
- Working with streams
- The "counter" Extension - A Continuing Example
- The PHP 5 build system
- Extension structure
- PDO Driver How-To
- Extension FAQs
- Zend Engine 2 API reference
- Zend Engine 2 Opcodes
- Zend Engine 1
- ЧАВО — ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них
- Appendices
- История PHP и смежных проектов
- Migrating from PHP 5.5.x to PHP 5.6.x
- Migrating from PHP 5.4.x to PHP 5.5.x
- Переход с PHP 5.3.x на PHP 5.4.x
- Переход c PHP 5.2.x на PHP 5.3.x
- Переход с PHP 5.1.x на PHP 5.2.x
- Переход с PHP 5.0.x на PHP 5.1.x
- Переход с PHP 4 на PHP 5.0.x
- Classes and Objects (PHP 4)
- Отладка в PHP
- Опции конфигурации
- Директивы php.ini
- Список/классификация расширений
- Список псевдонимов функций
- Список зарезервированных слов
- Список типов ресурсов
- Список доступных фильтров
- Список поддерживаемых транспортных протоколов
- Таблица сравнения типов в PHP
- Список меток (tokens) парсера
- Руководство по именованию
- Об этом руководстве
- Creative Commons Attribution 3.0
- Алфавитный список
- Список изменений
Коментарии
A better way to implement singleton desygn pattern and resquest data from a json file to connect to a database mysql. this is from my development project.
<?php
namespace Simulab\Simulab\models\connections;
/**
* Desygn Pattern: Construction: Singleton method.
*/
class SimulabConnection
{
private static $instance = null;
private static $pdo = null;
private function __construct()
{
}
/**
* This method get information like servername, database, user and password from a json file
* All The informations about the database connections.
*/
public static function getJsonData():object{
$filename = '../../config/json/sgbd_informations.json';
if (file_exists($filename)) {
$data = file_get_contents($filename);
$infodb= json_decode($data);
return $infodb;
}else{
return null;
}
}
public static function connect():?\PDO{
if (is_null(self::$instance)) {
self::$instance = new self;
$infodb= self::getJsonData()!=null?self::getJsonData():null;
$server= $infodb->server;
$database= $infodb->database;
$user= $infodb->user;
$password= $infodb->password;
$options= [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION];
self::$pdo = new \PDO("mysql:host=$server;dbname=$database", $user, $password, $options);
}
return self::$pdo;
}
}