Kategorien
Apache Webserver

Netbeans keine .svn Dateien anzeigen, aber alle anderen .Dateien

Unter Netbeans: Extras > Optionen > Verschiedenes > Dateien

Regex ändern in

^(CVS|SCCS|vssver.?\.scc|#.*#|%.*%|.svn)$|~$

 

Kategorien
Amazon MWS PHP

Amazon API Migration: SOAP/AIM Migration nach Amazon MWS

Wer die Amazon API nutzt um seine Artikel zu verkaufen, der muss diese nach Amazon MWS migrieren, weil am 8. Oktober 2012 die AIM- und SOAP-Dienste heruntergefahren werden. Bis dahin gibt es eine Übergangsfrist, die gilt, wenn die API  im Zeitraum vom 9.9.2011 und 9.10.2011 benutzt wurde.

Kategorien
SEO

Shop SEO mit schema.org

Mit schema.org können beliebiegen Textteilen einer Webseite maschinenlesbare Informationen über die Oberkategorie hinzugefügt werden.
Wenn man bspw. einen CD Online-Shop betreibt, kann man mit schema.org einer CD-Detail Seite Informationen über Interpreten, Release usw. kennzeichnen.

Kategorien
Zend Framework

Zend kranuliertes Rechtesystem mit Zend_Acl und Zend_Auth

Für das Rechtesystem in meinem Tippspiel werden die Komponenten Zend_Auth und Zend_Acl im Zendframework verwendet. Zend_Auth ist dabei für die Authentifizierung registrierter Nutzer zuständig und Zend_Acl für Verteilung und das setzen der Rechte. Es wurden drei Rollen angelegt: Guest, Member und Administrator.

Kategorien
HTML5

HTML5 mit Boilerplate

Das HTML5 Framework Boilerplate bietet ein Grundgerüst für die Programmierung in dem neuen Webstandard HTML5 an und beinhaltet

  • eine Optimierung für mobile Endgeräte
  • Cross-Browser Kompatibilität insbesondere für die Internet Explorer Versionen
  • HTML5 Cross-Browser Kompatibilität über die Javascript Bibliothek modernizer
  • jQuery für sämtliche Javascript Arbeiten
  • .htaccess-Datei  mit gängigen Standardeinstellungen und Performance Optimierungen
  • Druck CSS Stylesheet
Kategorien
Zend Framework

Zend Test mit PhpUnit

Zum Testen wurde PHPUnit verwendet als Standard-Testing-Tool für PHP und in Netbeans intergriert.

Dazu wurde eine Bootstrap Datei angelegt, in der die Applikationsvariablen geladen werden (IndexControllerTest.php):

class IndexControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
{
    public function setUp()
    {
        $this->bootstrap = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
        parent::setUp();
    }
}

Ein Test kann dan so aussehen (Test Files/application/controllers/IndexControllerTest.php):

require_once '/../../TestConfiguration.php';
require_once '/../../../application/models/Players.php';

class PlayersTest extends PhpUnit_Framework_TestCase{
    public function setUp()
    {
        TestConfiguration::setupDatabase();
    }
    public function testFetchAll(){
        $TippspielObjekt = new Players();
        $TippspielAnzahl = $TippspielObjekt->fetchAll();
        $this->assertGreaterThan(10, $TippspielAnzahl->count());        
    }
    public function testLatest(){
        $TippspielObjekt = new Players();
        $TippspielAnzahl = $TippspielObjekt->fetchLatest(1);
        $this->assertSame(1,$TippspielAnzahl->count());
    }
}
Kategorien
Apache Webserver PHP

PHP mit htaccess debuggen: Error Log

Um die möglichen bei Usern im Betrieb  auftretenden Fehler einer Webseiten zu loggen, empfiehlt sich ein Error Log in der htaccess einzurichten außerhalb des öffentlichen Teils der Webseite. Diese muss via FTP mit Schreibrechten versehen werden.

php_flag log_errors on

php_value error_log /srv/www/vhosts/domain/non-public/PHP_errors.log

php_flag ignore_repeated_errors on

php_flag ignore_repeated_source on

php_value error_reporting 1

Dabei werden keine sich wiederholenden und nur fatal run-time Fehler geloggt.

Kategorien
PHP

PHP 2-Spalten Layout eleganter Code

Wenn man performant und elegant ein belibeges 2 spaltiges Tabellen HTML  Layout generieren will ohne Tabellen, kann man z.B: so tun:

$count = count($array);
for($i = 0; $i < $count; $i++)
{
   $style = !$i%2 ? "left" : "right";
   $html .=  "<div class='$style'>{$array[$i]}</div>";
}

und mit CSS ausrichten:

#container{width:600px}
.left {width:200px}
.right {width:400px}
Kategorien
MySQL

PhpMyAdmin Inaktivitäts Zeitunkt erhöhen

Was mich richtig nervt, sind die automatischen Logouts von PhpMyAdmin, welche nach 1440s durchgeführt werden.

Dazu muss man in libraries/config.default den Wert ändern:

$cfg['LoginCookieValidity'] = 1440;

Un außerdem in der php.ini die Session Lifetime erhöhen, wenn nötig: session.gc_maxlifetime.

Kategorien
MySQL

MySQL reservierte Bezeichner und Release

Gerade habe ich an dem Problem gehangen, dass ich mit Doctrine eine neue Spalte namens „release“ füllen wollte. Mit Release wart das Release-Datum von CDs gemeint. Es kam die Standard Fehlermeldung von MySQL, das ein  Fehler bei release war.

$products->release = 2003;

Natürlich habe ich es auf Doctrine geschoben, weil da oft solch ein komisches Zeug passiert. Komisch war, dass die Fehlermdlung nicht auftrat bei:

$products->release = NULL;

Das gab mir schwer zu denken und führte mich auf die falsche Fährte in Richtung, dass der Wertebereich nicht passte.

Die Lösung war ganz einfach: Das Word Release gehört zu den reservierten Wörtern in MySQL, was ich nicht wusste. Einen Überblick gibt es hier.

Die Lösung war also, den Spalte umzubennen in product_release, damit funktioniert es dann:

$products->product_release = 2003;

Was genau der release-Befehl in MySQL macht, konnt ich leider nicht herausfinden, ich freue mich auf Beiträge darüber.