PHP с поддержкой sqlite3

Не путайте безопасность потоков с детерминизмом. Потокобезопасный код также может быть недетерминированным. Учитывая сложность отладки проблем с многопоточным кодом, это, вероятно, нормальный случай. : -)

Безопасность потока просто гарантирует, что когда поток изменяет или читает совместно используемые данные, никакой другой поток не может получить к нему доступ таким образом, чтобы изменить данные. Если ваш код зависит от определенного порядка выполнения для правильности, то вам нужны другие механизмы синхронизации, помимо тех, которые требуются для обеспечения безопасности потока.

6
задан obuzek 30 June 2009 в 23:03
поделиться

4 ответа

Я вижу, что вы специально просите о поддержке SQLite v.3, поэтому вам нужно проверить поддержку PDO и PDO_sqlite . Собственное расширение php_sqlite поддерживает только SQLite v.2 в PHP с 5 по 5.2. PHP 5.3 имеет собственное расширение php_sqlite3 , но я полагаю, что это не ваш случай, поскольку оно было выпущено только вчера.

Я считаю, что вам не повезло, если ваша установка не включает это , поскольку предлагаемый PEAR MDB2 является просто уровнем абстракции над существующими драйверами, он не заменяет их.

4
ответ дан 9 December 2019 в 22:38
поделиться

phpinfo (); должен сообщить вам, что скомпилировано. Выполните это:

<?php

phpinfo();

?>

и найдите sqlite в выводе HTML.

5
ответ дан 9 December 2019 в 22:38
поделиться

Это более общая проблема, чем просто отделение модели предметной области от доступа к данным. Та же проблема возникает, когда вы пытаетесь отделить логику приложения от модели предметной области, модель представления от логики приложения и т. Д.

Распространенным решением является метод, называемый внедрением зависимостей (DI). Некоторые люди также называют это инверсией управления (IoC).

Основополагающим текстом по этой теме была статья Мартина Фаулера Инверсия управляющих контейнеров и шаблон внедрения зависимостей , но мы прошли долгий путь с тех пор, поэтому обязательно изучите и некоторые более свежие тексты.

Вы можете реализовать DI вручную, как , описанное в этом сообщении в блоге , или вы можете позволить контейнеру DI (т.е. фреймворку) сделать работа для вас.

Общие контейнеры DI:

2
ответ дан 9 December 2019 в 22:38
поделиться

Если у вас нет встроенной поддержки sqllite в php, и вы не можете создать его как расширение, вы всегда можете попробовать расширение pear http://pear.php.net/ package / MDB2 .

Я сам не использовал его, но он утверждает, что поддерживает sqllite http://pear.php.net/package/MDB2_Driver_sqlite/

0
ответ дан 9 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: