Autoloads, HTMLPurifier und Smarty per Composer

Hier geht es um die Programmierung von Opencaching.de - User mit Erfahrungen im Bereich PHP, MySQL, HTML, JavaScript, CSS werden hier ständig gesucht
mbirth

Neben dem OC-Talk hab ich gerade mal HTMLPurifier und Smarty mittels Composer ausgelagert und auch den Autoloader in der common.inc.php durch den vom Composer ersetzt. Meine Dev-Installation funktioniert weiterhin ganz normal. Kann das mal noch jemand anderes ausprobieren, bevor ich das als Pull Request einreiche?

https://github.com/mbirth/oc-server3/tr ... e-composer


Wer Composer nicht kennt:

Nach dem Auschecken aus Git, finden sich im htdocs-Verzeichnis eine composer.json und composer.lock. Composer selbst muss man sich mittels folgendem Befehl (aus dem htdocs-Verzeichnis heraus) holen:

Code: Alles auswählen

curl -sS https://getcomposer.org/installer | php
Danach kann man das hier aufrufen, um die Pakete laut JSON und lock-Datei herunter zu laden und zu installieren, außerdem werden die Klassen in "lib", "lib2" und "libse" geparsed, um den Autoloader zu generieren:

Code: Alles auswählen

./composer.phar install
Mehr ist erstmal nicht nötig.

Wenn man entwickelt und eine neue Klasse angelegt hat, kann man den Autoloader damit aktualisieren:

Code: Alles auswählen

./composer.phar dumpautoload
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

ich werde das bei gelegenheit mal in den next-branch uebernehmen, dann kann man die anpassungen auf dem test-server durchtesten...
gruss Nils (bohrsty)

Bild
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

und noch eine kleinigkeit:
opencaching sind wir... OpenCaching ist garmin ;) pass mal bitte deine .json-datei entsprechend an...
gruss Nils (bohrsty)

Bild
mbirth

Ich hab die json Datei gerade berichtigt und gepushed. ;-)
Schrottie

[quote="bohrsty"]
ich werde das bei gelegenheit mal in den next-branch uebernehmen, dann kann man die anpassungen auf dem test-server durchtesten...
[/quote]

Nur kurz zur Erklärung: Neben den lokalen Tests beim jeweiligen Entwickler werden größere Dinge vor Übernahme ins Produktivsystem zuerst auf den Testserver gepackt.  Der wiederum entspricht dem Produktivserver weitgehend,  so dass man dort eigentlich alle Fehler findet. Der Zugang dazu ist allerdings dem Team vorbehalten.

@mbirth: Ich werde sehen das ich Dich nachher für den internen Bereich freischalte und Dir auch Zugang zum Testserver verschaffe.  :)
Benutzeravatar
4_Vs
Vereinsmitglied
Vereinsmitglied
Beiträge: 3150
Registriert: 18.03.2012, 07:25

[quote="Schrottie"]
@mbirth: Ich werde sehen das ich Dich nachher für den internen Bereich freischalte und Dir auch Zugang zum Testserver verschaffe.  :)
[/quote]
Den ersten Teil habe ich bereits gemacht :)
Whenever I try to plan something, it doesn't seems to work out. So why plan, it only leads to disappointment! (Eddie van Halen)
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

anmeldung und freischaltung im teamwiki nicht vergessen...
gruss Nils (bohrsty)

Bild
Benutzeravatar
pirate77
Large
Large
Beiträge: 1260
Registriert: 17.03.2012, 22:37

[quote="bohrsty"]
anmeldung und freischaltung im teamwiki nicht vergessen...
[/quote]
Dazu einfach E-Mail Adresse an mich senden : ;)
Edit: auch bitte den Nick bei einer E-Mail  8) sonst hab ich keine Ahnung wer mir da schreibt ;)

Das kann ich, von dem ganzen andern Zeug versteh ich gar nix, aber es klingt toll  8)
Zuletzt geändert von pirate77 am 06.01.2014, 17:31, insgesamt 1-mal geändert.
[url=http://www.opencaching.de/viewprofile.php?userid=152708][img]http://www.opencaching.de/statpics/DE/152708.jpg[/img][/url]
mbirth

Ich … äh … hatte da etwas Zeit und hab schonmal angefangen, alles etwas umzubauen. Den Fortschritt kann man dort begutachten:


https://github.com/mbirth/oc-server3/tree/code-upgrade




@bohrsty:
Hast Du schon eine Idee, wann Du dazu kommst, zumindest schonmal den introduce-composer branch von mir in den next-Branch zu übernehmen? (Nach dem Checkout die Composer-Befehle nicht vergessen!) Ich geb mir Mühe, immer nur lauffähige Stände zu committen - von daher kannst Du auch gleich den code-upgrade-Branch ziehen, wenn Du magst.
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

ich hatte gerade gesehen, deine namespaces haben auch schon wieder falsche camelcases "OpenCachingDE"... ;) wieder mal das "c" kleinschreiben ::)

[quote="mbirth"]
[...]
@bohrsty:
Hast Du schon eine Idee, wann Du dazu kommst, zumindest schonmal den introduce-composer branch von mir in den next-Branch zu übernehmen? (Nach dem Checkout die Composer-Befehle nicht vergessen!) Ich geb mir Mühe, immer nur lauffähige Stände zu committen - von daher kannst Du auch gleich den code-upgrade-Branch ziehen, wenn Du magst.
[/quote]

ich muss heute eh noch was fuer oc machen, also vielleicht schaffe ich das gleich mit... mach mal bitte einen pull-request, dann uebernehme ich das gleich in den master und von da in next...
gruss Nils (bohrsty)

Bild
mbirth

[quote="bohrsty"]
ich hatte gerade gesehen, deine namespaces haben auch schon wieder falsche camelcases "OpenCachingDE"... ;) wieder mal das "c" kleinschreiben ::)
[/quote]


Wer hat sich das denn ausgedacht? Es heißt doch OC bzw. OCDE und nicht ODE … aber gut, Namen sind ja nur Schall & Rauch. Ich passe das heute nacht dann an. :)  Soll ich dann "OpencachingDE" oder "OpencachingDe" (richtiges CamelCase) machen?

[quote="bohrsty"]ich muss heute eh noch was fuer oc machen, also vielleicht schaffe ich das gleich mit... mach mal bitte einen pull-request, dann uebernehme ich das gleich in den master und von da in next...[/quote]Ich hab Dir gerade mal einen gemacht. :)
Zuletzt geändert von mbirth am 08.01.2014, 19:07, insgesamt 1-mal geändert.
Schrottie

OpencachingDE passt. Das liegt daran, das OpenCaching von Garmin belegt ist, wenn auch nur COM.
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

[quote="mbirth"]
[quote="bohrsty"]
ich hatte gerade gesehen, deine namespaces haben auch schon wieder falsche camelcases "OpenCachingDE"... ;) wieder mal das "c" kleinschreiben ::)
[/quote]


Wer hat sich das denn ausgedacht? Es heißt doch OC bzw. OCDE und nicht ODE … aber gut, Namen sind ja nur Schall & Rauch. Ich passe das heute nacht dann an. :)  Soll ich dann "OpencachingDE" oder "OpencachingDe" (richtiges CamelCase) machen?

[quote="bohrsty"]ich muss heute eh noch was fuer oc machen, also vielleicht schaffe ich das gleich mit... mach mal bitte einen pull-request, dann uebernehme ich das gleich in den master und von da in next...[/quote]Ich hab Dir gerade mal einen gemacht. :)
[/quote]

da klappt irgendwas nicht:

Code: Alles auswählen

PHP Warning:  array_merge_recursive(): Argument #2 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 316
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 326
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 335
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 339
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 347
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/lib2/common.inc.php on line 31
PHP Warning:  require_once(config2/settings.inc.php): failed to open stream: No such file or directory in /var/www/test.opencaching.de/code/htdocs/lib2/common.inc.php on line 31
PHP Fatal error:  require_once(): Failed opening required 'config2/settings.inc.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/test.opencaching.de/code/htdocs/lib2/common.inc.php on line 31
-- reinstall triggers, press ENTER to skip or ^C to abort
   remember that httpd is down!
PHP Warning:  array_merge_recursive(): Argument #2 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Warning:  array_merge_recursive(): Argument #1 is not an array in /var/www/test.opencaching.de/code/htdocs/config2/locale.inc.php on line 31
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 316
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 326
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 335
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 339
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/config2/settings-dist.inc.php on line 347
PHP Notice:  Undefined index: rootpath in /var/www/test.opencaching.de/code/htdocs/lib2/common.inc.php on line 31
PHP Warning:  require_once(config2/settings.inc.php): failed to open stream: No such file or directory in /var/www/test.opencaching.de/code/htdocs/lib2/common.inc.php on line 31
PHP Fatal error:  require_once(): Failed opening required 'config2/settings.inc.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/test.opencaching.de/code/htdocs/lib2/common.inc.php on line 31

die prozedur zum updaten laeuft ueber das skript "bin/checkout"

Code: Alles auswählen

#!/bin/bash
cd /var/www/test.opencaching.de/code

if [ "`git branch|grep next`" != "* next" ]; then
  echo "error: you are not in 'next' branch!"
else
  echo

  echo "-- test for clean working directory"
  if [ "`git status|grep -i 'working directory clean'`"  == "" ]; then
    echo "error: working directory is not clean:"
    git status
  else

    echo "-- fetch origin ..."
    git fetch origin
    read -p "press ENTER to go on or ^C to abort ..."
    echo

    echo "-- stop httpd ..."
    httpd -k stop

    echo "-- merge origin/next ..."
    git merge origin/next

    echo "-- fixing file owners ..."
    bin/filemodes

    echo "-- updating database structures ..."
    php bin/dbsv-update.php

    echo "-- reinstall triggers, press ENTER to skip or ^C to abort"
    echo "   remember that httpd is down!"
    cd htdocs/doc/sql/stored-proc
    # will ask for DB root password:
    php maintain.php
    cd ../../../..

    echo "-- importing static data, press ENTER to skip ..."
    # will ask for DB root password:
    cat htdocs/doc/sql/static-data/data.sql | mysql -uoc_root -p oc_test
    echo

    echo "-- start httpd ..."
    httpd -k start

    read -p "-- clear webcache [y/n]? " clearwc
    if [ "$clearwc" == "y" ]; then
      cd bin
      php clear-webcache.php
      cd ..
    fi

    echo "Done."
    echo
  fi
fi

kannst du das entsprechend anpassen, damit es mit dem composer funktioniert (ist bash), so dass es auch beim ersten aufruf (ohne composer) funktioniert?

ich habe den composer auf dem testserver laut deinen angaben installiert:

Code: Alles auswählen

[root@nano htdocs]# curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
Some settings on your machine may cause stability issues with Composer.
If you encounter issues, try to change the following:

Your PHP (5.3.3) is quite old, upgrading to PHP 5.3.4 or higher is recommended.                                                                                         
Composer works with 5.3.2+ for most people, but there might be edge case issues.                                                                                        

Downloading...

Composer successfully installed to: /var/www/test.opencaching.de/code/htdocs/composer.phar                                                                              
Use it: php composer.phar                                                                                                                                               
[root@nano htdocs]# ./composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
  - Installing ezyang/htmlpurifier (v4.5.0)
    Downloading: connection...    Downloading: 100%         

  - Installing smarty/smarty (2.6.26)
    Downloading: 100%         

Generating autoload files
danach liefert das checkout-skript aber die o.a. meldungen...
gruss Nils (bohrsty)

Bild
mbirth

Ich hab Dir einen neuen Pull Request gebaut. Höchstwahrscheinlich hat PHP 5.3.3 ein Problem mit Kommentaren in JSON und erzeugt daher FALSE statt dem Array mit den Daten.


Das Upgrade-Script hab ich ergänzt:

Code: Alles auswählen

#!/bin/bash
cd /var/www/test.opencaching.de/code

if [ "`git branch|grep next`" != "* next" ]; then
  echo "error: you are not in 'next' branch!"
else
  echo

  echo "-- test for clean working directory"
  if [ "`git status|grep -i 'working directory clean'`"  == "" ]; then
    echo "error: working directory is not clean:"
    git status
  else

    echo "-- fetch origin ..."
    git fetch origin
    read -p "press ENTER to go on or ^C to abort ..."
    echo

    echo "-- stop httpd ..."
    httpd -k stop

    echo "-- merge origin/next ..."
    git merge origin/next

    echo "-- installing/updateing Composer ..."
    pushd htdocs
    if [ ! -x ./composer.phar ]; then
        curl -sS https://getcomposer.org/installer | php
    else
        ./composer.phar selfupdate
    fi

    echo "-- let Composer install everything according to composer.lock ..."
    ./composer.phar install
    popd

    echo "-- fixing file owners ..."
    bin/filemodes

    echo "-- updating database structures ..."
    php bin/dbsv-update.php

    echo "-- reinstall triggers, press ENTER to skip or ^C to abort"
    echo "   remember that httpd is down!"
    pushd htdocs/doc/sql/stored-proc
    # will ask for DB root password:
    php maintain.php
    popd

    echo "-- importing static data, press ENTER to skip ..."
    # will ask for DB root password:
    cat htdocs/doc/sql/static-data/data.sql | mysql -uoc_root -p oc_test
    echo

    echo "-- start httpd ..."
    httpd -k start

    read -p "-- clear webcache [y/n]? " clearwc
    if [ "$clearwc" == "y" ]; then
      cd bin
      php clear-webcache.php
      cd ..
    fi

    echo "Done."
    echo
  fi
fi
Benutzeravatar
bohrsty
Administrator
Administrator
Beiträge: 1367
Registriert: 30.03.2012, 22:54

ok, ich baue das skript dann mal ein...

bzgl. der uebernahme der branches machen wir das doch anders (ich werde meinen letzten pull noch mal aus dem master herausoperieren), Peter (following) hatte die branches zum testen immer direkt in den test-server gemerged, dann wird der master nicht "vollgemuellt" und enthaelt nur getestete commits...

das schaffe ich vermutlich aber erst am wochenende (oder anfang naechster woche)...

du hast post (pn)...
gruss Nils (bohrsty)

Bild
Antworten