Résoudre les problèmes de lenteur de XAMPP avec Windows 7

En cas de lenteur d’un serveur XAMPP  (ou WAMP) sous Windows 7 à l’exécution de requêtes PHP très simples, la manipulation suivante peut résoudre le problème : décommenter la ligne contenant « 127.0.0.1 localhost » dans le fichier c:/windows/system32/drivers/etc/hosts

Source :

Publicités

Guide d’installation et de post-installation de Bonfire v0.6

Installation

Paramétrage du module de réécriture des URL dans Apache

  • activer le module dans httpd.conf en décommentant la ligne suivante :
    LoadModule rewrite_module modules/mod_rewrite.so
  • accorder l’accès en lecture au fichier .htacces en commentant les lignes suivantes :
    #<Files ".ht*">
    # Require all denied
    #</Files>

Paramétrage du fichier .htacess dans le dossier d’installation de Bonfire

  • activer le moteur de réécriture :
    RewriteEngine On
  • modifier la base du site avec :
    RewriteBase /install/

    si Bonfire est installé dans un sous-répertoire :

    RewriteBase /fodler/install/

Source : http://forums.cibonfire.com/discussion/1090/tip-how-to-fix-the-redirect-loop-during-install

Bugs à corriger après l’installation

Création d’un module basé sur une table existante

Si à la validation du formulaire de création, rien ne se passe, il faut remplacer la ligne 49 du fichier \bonfire\application\core_modules\builder\views\developer\modulebuilder_form.php comme suit :

<?php echo form_open(current_url() . "/" . $field_total, array('id'=>"module_form",'class'=>"form-horizontal")); ?>

Affichage d’un message d’erreur non bloquant lors de l’enregistrement d’une modification des paramètres de l’application (« Settings » > « Settings »)

Dans le fichier bonfire/codeigniter/database/DB_active_rec.php, supprimer les lignes suivantes (1401 à 1404) :

- else
- {
- $not[] = $k.'-'.$v;
- }

Sources :
http://forums.cibonfire.com/discussion/comment/3677#Comment_3677
https://github.com/ci-bonfire/Bonfire/commit/542b84a8

Se connecter à une base de données avec PDO en utilisant global

Dans le script de connexion à la base de données :

try {
$pdo = new PDO(
'mysql:host=localhost;dbname=dbname', USERNAME, PASSWORD);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$pdo->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}

Note : le nom d’utilisateur et le mot de passe sont appelés via des constantes stockées dans un autre fichier.

Pour appeler la connexion dans une fonction :

global $pdo;

Source :

Utiliser des caractères génériques dans une requête SQL avec PHP PDO

En cas d’utilisation d’un emplacement réservé (named placeholder), il faut concaténer celui-ci avec le caractère générique (wildcard) comme dans l’exemple suivant :

$sql = "SELECT item_title FROM item WHERE item_title LIKE CONCAT('%',?,'%')";

 Source :

Utiliser un singleton pour se connecter à une base de données avec PDO

Méthode 1

/**
* Classe de connection à la base de données utilisant un singleton pattern
*/
class Connection {

protected static $pdo;

/**
* Construction de la connection
*/
private function __construct() {
try {
self::$pdo = new PDO(
'mysql:host=localhost;dbname=test',
USERNAME, PASSWORD);
self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
self::$pdo->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
}

/**
* Instanciation de la connection si elle ne l'est pas
* @return string
*/
public static function getConnection() {
if (!self::$pdo) {
new Connection();
}
return self::$pdo;
}

}

Source :

Méthode 2

class ConnectionFactory {

private static $factory;

public static function getFactory() {
if (!self::$factory)
self::$factory = new ConnectionFactory();
return self::$factory;
}

private $pdo;

public function getConnection() {
if (!$pdo)
try {
$pdo = new PDO(
'mysql:host=localhost;dbname=test',
USERNAME, PASSWORD);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$pdo->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
return $pdo;
}

}

Source :

Bonnes pratiques PHP

Généralités

Conventions de nommage

Conventions de CakePHP

Tutoriels

Documentation