Inhalt überspringen

Artikel getagged ‘’

1
Jun

[PHP] Der include path

Oft liest man, dass man bestimmte Verzeichnisse in den sog. include path aufnehmen soll oder im include path irgendwelche scripts ablegen soll und das meist ohne weitere Erklärung. Der Include Path und das Administrieren des Selbigen gehört also mehr oder weniger zu den Grundkenntnissen. Dennoch ist es für viele ein Mysterium.
Da ich gestern ein wenig damit gearbeitet habe, dachte ich, ich blogge mal ein wenig drüber. Warum? Weil ichs kann. Und weil ich eine kleine Hilfestellung zum Thema path im Allgemeinen und dem PHP include path im Speziellen zur Verfügung stellen möchte.

Weiterlesen

4
Mai

[yii] Globale Installation unter Linux

Jaaa, richtig, ich arbeite zur Zeit mit dem yii-Framework. Und ich finde es toll :)

1. Die Installation

ghost@spacebox:~$ sudo -s
root@spacebox:~$ cd /var/www/lib
root@spacebox:/var/www/lib$ svn co http://yii.googlecode.com/svn/trunk/framework yii

2. Updaten des Frameworks

ghost@spacebox:~$ sudo -s
root@spacebox:~$ cd /var/www/lib
root@spacebox:/var/www/lib$ svn up

3. Das Kommandozeilen-Tool im PATH ablegen:

ghost@spacebox:~$ sudo ln -s /var/www/lib/yii/yiic /usr/bin/yii

Absofort steht der Befehl "yii" in der bash zur Verfügung.

4. Anpassen der Applications

Die index.php jeder Application musst angepasst werden, damit das Framework gefunden wird:

<?php
    set_include_path('/var/www/lib/yii');

    define('DIR', dirname(__FILE__));
    define('YII_DEBUG', true);
    define('YII_TRACE_LEVEL', 3);

    $config = DIR . '/app/config/main.php';

    require_once('yii.php');
    Yii::createWebApplication($config)->run();
3
Mai

[Linux] Apache/MySQL/Eclipse PDT unter Ubuntu einrichten

Hier eine kurze Anleitung wie man sich unter einem aktuellen Ubuntu eine Entwicklungsumgebung mit Apache, MySQL und PDT einrichtet.

 

Schritt 1: Das Arbeitsverzeichnis

Zuerst legen wir uns ein Arbeitsverzeichnis an, der Eclipse-Workspace. Hier werden später die Projekte abgelegt. Außerdem dient das Verzeichnis als DocumentRoot für den Apache:

ghost@spacebox:~$ mkdir workspace

Fertig. Langweilig, ich weiß ;)

 

Schritt 2: Der Apache

Installieren des Apachen mit mod_php5:

ghost@spacebox:~$ sudo aptitude install apache2 libapache2-mod-php5

Einrichten der DocumentRoot:

ghost@spacebox:~$ sudo vim /etc/apache2/sites-avilable/default

Es öffnet sich der vim mit der default site, welche wir wie folgt anpassen ([i] zum Bearbeiten):

<VirtualHost *:80>
    DocumentRoot /home/ghost/workspace

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /home/ghost/workspace>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    (...)
</VirtualHost>

[esc], ":wq", [enter] speichert und schließt die Datei.

Anschließend muss der Apache reloaded werden, das funktioniert wie folgt:

ghost@spacebox:~$ sudo /etc/init.d/apache reload

Zum Testen legen wir innerhalb des workspace-Verzeichnisses eine index.php an:

ghost@spacebox:~$ cd workspace
ghost@spacebox:~/workspace$ echo 'Hallo Welt!'  > index.php

Im Anschluss dazu rufen wir im Browser die URL "http://localhost/index.php" auf.
Wir erhalten eine weiße Seite und ein "Hallo Welt!".

 

Schritt 3: Der MySQL-Server

Zuerst den MySQL-Server und den Client installieren:

ghost@spacebox:~$sudo aptitude install mysql-client-5.1 mysql-server-5.1

Während der Installation wird man dazu aufgefordert ein root-Passwort für den MySQL-Server festzulegen, dort ein beliebiges Passwort eingeben und selbiges bitte merken ;)

anschließend ein Verbindungstest zum Server:

ghost@spacebox:~$ mysql -h localhost -u root -p

Nach der Eingabe des korrekten Passworts, welches wir eben bei der Installation festgelegt haben, startet die mysql-Shell:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.1.41-3ubuntu12 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
 

 

Schritt 4: Die PDT

Die PHP Development Tools ist eine auf Eclipse basierende Entwicklungsumgebung für PHP.

Zuerst laden wir uns das tar.gz-Archiv, welches wir auf der offiziellen Website finden und entpacken dieses anschließend nach /opt/eclpse:

ghost@spacebox:~/Desktop$ sudo tar xvzf eclipse.tar.gz -C /opt/

Über einen Rechtsklick auf das Gnome bzw KDE-Menü kann mit Hilfe des "Menü bearbeiten"-Tools ein Menü-Eintrag für Eclipse angelegt werden. Der Befehl zum starten von Eclipse lautet:

/opt/eclipse/eclipse

 

Nun stehen  Apache und MySQL zusammen mit PDT zur Verfügung. Der Apache und der MySQL-Server starten bei jedem Booten des Systems automatisch und müssen daher nicht manuell gestartet werden.

9
Nov

[Codeigniter] Tutorial Teil 1: Wie installiere ich das Framework?

Letzte Woche hatte ich euch eine Einführung in das Codeigniter-Framework gegeben um damit meine Tutorial-Reihe zu beginnen.
Nachdem ihr nun wisst, was Codeigniter ist und welche Vorteile das Framework mit sich bringt, machen wir nun mit dem nächsten logischen Schritt weiter: Die Installation.

Da es in Codeigniter nicht nötig ist, sich durch eine Fülle an Config-Files zu wühlen um am Ende dann doch alles falsch konfiguriert zu haben, geht die Installation im Vergleich zu anderen Frameworks relativ schnell.

Get Codeigniter!

Überraschungsarm, besteht die erste Handlung aus dem Herunterladen des Frameworks. Dazu rufen wir die Seite http://www.codeigniter.com auf, wo uns auch direkt der Download-Link angeboten wird.

Für das Beispiel-Projekt legt ihr euch auf euerer Festplatte einen Ordner an; z.B. "ci_tut". Optimalerweise befindet sich dieser im Document-Root des Webservers.

In dieses Verzeichnis legen wir dann die eben runtergeladene ZIP-Datei ab und entpacken diese in das selbe Verzeichnis. Danach liegt uns folgende Struktur vor:

- index.php
- license.txt
+ system
+ user_guide

4
Nov

[Codeigniter] Start der Tutorial-Reihe

Dies ist der einleitende Beitrag zu meiner Tutorial-Reihe über das OpenSource PHP-Framework Codeigniter.

In dieser Artikel-Reihe, die ich unregelmäsig fortführen werde, möchte ich euch das Codeigniter-Framework etwas näher bringen.

Ich selbst habe schon einige Projekte mit diesem Framework umgesetzt bzw. arbeite gerade mit dem Framework und kann es mir aus meiner täglich Arbeit kaum noch wegdenken.
Es war das erste PHP-Framework, mit dem ich Kontakt hatte und bei dem ich auch geblieben bin nachdem ich symfony und cakePHP ausprobiert und einige andere Frameworks überflogen habe.

Hier erstmal das Inhaltsverzeichnis des Tutorials. Die Links werde ich entsprechend immer ergänzen, sobald der jeweilige Artikel online ist.

  • Die Einleitung: Was ist Codeigniter?
  • Teil 1: Wie installiere ich das Framework?
  • Teil 2: Grundlagen
  • Teil 3: MVC? Kann man das essen?
  • Teil 4: Der erste Controller
  • Teil 5: Was der User sieht: Views
  • Teil 6: Auf dem Catwalk: Models
  • Teil 7: AJAX, jQuery und Codeigniter
  • Teil 8: Die Session-Library
  • Teil 9: Helper und Libraries – Marke: Eigenbau
  • Teil 10: Mehr Power für das Framework: Hooks
  • (…)

Das ist also der Plan. Wer sich hier noch weitere Themen wünscht, darf sich gerne dazu äußern. Evtl. kann man ein paar Artikel in Gastartikel auslagern, mal sehen ;)

Los geht es in diesem Beitrag. Erstmal ist natürlich zu klären, was Codeigniter eigentlich ist und was für seine Verwendung spricht.

21
Sep

[Projekte] ViewController 0.1.1

Habe gerade noch ein paar Bugfixes an meinem ViewController vorgenommen. Außerdem findet sich das Script nun in meinem Portfolio wieder.

:)

24
Aug

[Codeigniter] ViewController

Leider liegt dem Codeigniter-Framework kein ordentlicher ViewController bei, der die Verwaltung der Views erleichtert bei. Da ich aber dennoch nicht darauf verzichten möchte, habe ich mir hierfür einen Hook geschrieben, der diese Lücke im Framework füllt.
Und natürlich teile ich dieses wundervolle Stück Code gerne mit euch ;)

Wie ihr den Hook installiert und verwendet erkläre ich euch in diesem Artikel. Ich hoffe es hilft euch weiter. Für Verbesserungsvorschläge und Bugreports bin ich natürlich immer offen.

Hier erstmal das tgz-Archiv zum Downloaden.

1. Einführung

Ich gehe mal davon aus, dass ihr bei eueren Projekten zumeist eine head.php in dem view-Verzeichnis liegen habt. Diese beinhaltet das öffnende HTML-Tag, den HEAD-Tag, den öffnenden BODY-Tag und ein wenig HTML-Code im Body. Die Datei wird bei jedem Request vor dem eigentlichen Content der Seite geladen. Dazu gibt es wahrscheinlich noch eine foot.php und vielleich noch eine navigation.php oder sowas ähnliches. Also praktisch den "Frame", welcher alles um den Content außenrum darstellt.

Natürlich ist es nun unschön diese Dateien in jeder Controller-Action laden zu müssen. Dies und noch mehr soll der ViewController erledigen.

14
Aug

[PHP] Fiese PHP Skripte: Obscurity Code

Nils hat zum Verfassen von fiesen PHP Skripten aufgerufen. Dem bin ich natürlich gefolgt.

Zuerst die Frage: Was meint er denn überhaupt? Da ich mir nicht ganz im Klaren war, was Nils mit "fies" meint, habe ich mir überlegt ..

  • … das Skript könnte etwas fieses mit dem System anstellen: na ja find ich persönlich jetzt nicht so spannend. Fork Bombs gibts zu genüge und das geht mit Perl sowieso schöner …
  • … das Skript könnte einfach extrem schlecht programmiert sein: Lustig ist es ja. Aber auf Kommando schlechten Code zu produzieren ist schwerer als man glaubt *g*
  • … das Skript könnte sehr unsicher sein: Na gut, das ist nicht schwer, das sieht man oft genug.
  • … das Skript könnte interessante Syntax-Features verwenden und am Ende aussehen wie ein zusammengehacktes, unleserliches PERL-Script: Das klingt doch lustig ;)

Also habe ich mir angesehen, was man in PHP exotisches mit der Syntax anstellen kann und bin auch fündig geworden. Außerdem habe ich selbst noch ein wenig rumporbiert. Ergebnis ist folgender Code.

Wobei ich mir hier auch das Prinzip der "security by obscurity" zu Nutze gemacht habe und das Skript einfach extrem unleserlich geschrieben habe. Fies eben ;)

Hier ein paar Merkmale des Codes:

  • Keine ordentliche Kapselung
  • "€" als Namen für Methoden und Funktionen funktioniert
  • "_" als Klassenname
  • Sehr unleserlich, da die Methoden namen in einem Array abgelegt ist und die Methoden dann dynamisch aufgerufen werden
  • Es is auch ein Singleton-Pattern implementiert *g*

So würde das in der Praxis natürlich niemand machen. Aber es geht.
Keine Angst vor dem Ausführen: Das Script gibt einfach nur Zahlen von 0-10 mit Einrückung aus.

<?php
	$f=_::€0();for(;_::$i->c<_::$f[4]();){_::$i->$f[3]()||_::$f[1]((_::$i->c<10?' '._::$i->c:_::$i->c));}

	class _{var $c;static $i;
		static function €0(){self::$i = new _;return array('€0','€1', '€2', '€3', '€4');}
		static function €1($t){echo $t."\n";}
		function €3(){$this->c++;}
		static function €4(){return 10;}}
30
Jun

[PHP] PHP 5.3 Release

Heute steht nach langem Warten endlich die neue PHP-Version 5.3 in den Startlöchern und wartet auf den Release, der im Laufe des Tages erfolgen wird.

Ganz besonders freue ich mich auf die Namespaces, Late Static Binding und Lambda/Closures. Ich warte nur auf den Startschuss um das neue Apache-Modul zu kompilieren und die neuen Funktionen auszuprobieren. *gespannt*

Ich hoffe mal, dass meine Projekt noch mit PHP 5.3 laufen, habe da aber eher wenig Bedenken …

18
Jun

[Symfony] sfDoctrine meldet “Couldn’t locate driver named mysql”

Was tun, wenn das sfDoctrine-Plugin bei dem Task build-sql folgende Meldung zurückgibt?

Couldn’t locate driver named mysql

Die Meldung entsteht, wenn dem sfDoctrine-Plugin das PDO nicht zur Verfügung steht. Einfach in der php.ini (für die CLI, nicht für den apache!) “pdo_mysql” aktivieren ;)

Unter Debian befindet sich die Datei unter “/etc/php5/cli/php.ini“. Zumindest bei mir *g*