Allgemein, Arbeit

Unit tests for SF2 with IntelliJ / PHPStorm and Vagrant

you require a working Symfony instance running through Vagrant.

Prerequisites

1) Install Remote Interpreter

remote_php

2) Add a Remote PHP Interpreter.

use vagrant ssh-config to get required information

Screen Shot 2016-02-17 at 14.11.57

3) Setup Path Mapping (Deployment Server)

Screen Shot 2016-02-17 at 14.47.11

 

4) Setup PHPUnit

Screen Shot 2016-02-18 at 00.04.27.png

create a file in app/phpunit.php and use it as a custom loader for phpunit:

<?php

if (!defined('PHPUNIT_COMPOSER_INSTALL')) {
    define('PHPUNIT_COMPOSER_INSTALL', __DIR__ . '/autoload.php');
}

require_once 'autoload.php';

this allows you to use @runInSeparateProcess till https://youtrack.jetbrains.com/issue/WI-29458 is fixed

 

 

Now everything should be setup and you can run the tests in Vagrant 🙂

Uncategorized

SVN Hooks

Hi there, within a big php project you make typos. here is a small prehook script for svn that will actually prevent commits with several common and annoying mistakes:

  • Spaces in filenames
  • Spaces prior to the first <?php tag
  • PHP Short Tags
  • windows line endings

[bash]#!/bin/bash

# configuration
DO_DOS_FILE_CHECK=1
DO_SPACE_FILE_CHECK=1
DO_PHP_SHORT_TAG_CHECK=1
DO_SPACE_BEFOR_PHP_CHECK=1

REPOS=”$1″
TXN=”$2″

SVNLOOK=/usr/bin/svnlook
TMPFILE_ORIG=/tmp/svnhook_$TXN
TMPFILE_UNIX=/tmp/svnhook_unix_$TXN

FILES=`$SVNLOOK changed “$REPOS” -t “$TXN” | sed -r ‘s/^[D].*$//;s/^[AU]{1,2}s+//’`
DOS_FILES=””
SPACE_FILES=””
PHP_SHORT_TAG_FILES=””
SPACE_BEFOR_PHP_FILES=””

IFS=$’n’

for FILE in $FILES
do
LAST=${FILE#${FILE%?}}

# echo “FILE = ‘$FILE'” >&2

if [ “$LAST” = “/” ]; then
continue
else
if [ -n $DO_SPACE_FILE_CHECK ]; then
# space in filename check
SPACE_VIOLATIONS=`echo “$FILE” | grep -l ” “`

if [ -n “$SPACE_VIOLATIONS” ]; then
SPACE_FILES=”$SPACE_FILESn$FILE”
continue
fi
fi

$SVNLOOK cat “$REPOS” -t “$TXN” “$FILE” > $TMPFILE_ORIG || continue

if [ -n $DO_DOS_FILE_CHECK ]; then
# check windows line endings
VIOLATIONS=`grep -cIls $’r$’ $TMPFILE_ORIG` >&2

if [ -n “$VIOLATIONS” ]; then
DOS_FILES=”$DOS_FILESn$FILE”
fi
fi

if [ -n $DO_PHP_SHORT_TAG_CHECK ]; then
# check php short tags
VIOLATIONS=`grep -rn ‘&2
if [ -n “$VIOLATIONS” ]; then
PHP_SHORT_TAG_FILES=”$PHP_SHORT_TAG_FILESn$FILE: $VIOLATIONS”
fi
fi

if [ -n $DO_SPACE_BEFOR_PHP_CHECK ]; then
# check for space prior to php tag
VIOLATIONS=`head -n 1 $TMPFILE_ORIG | grep ‘^s&2
if [ -n “$VIOLATIONS” ]; then
SPACE_BEFOR_PHP_FILES=”$SPACE_BEFOR_PHP_FILESn$FILE”
fi
fi
fi
done

rm -f $TMPFILE_ORIG
rm -f $TMPFILE_UNIX

if [ “$DOS_FILES” != “” ] || [ “$SPACE_FILES” != “” ] || [ “$SPACE_BEFOR_PHP_FILES” != “” ] || [ “$PHP_SHORT_TAG_FILES” != “” ]; then
echo -e “n” >&2
if [ “$DOS_FILES” != “” ]; then
echo “ONLY UNIX LINEENDINGS ALLOWED!!!” >&2
echo “the following file contains Windows / Mac Lineendings:” >&2
echo -e $DOS_FILES >&2
echo -e “n” >&2
fi

if [ “$SPACE_FILES” != “” ]; then
echo “SPACES ARE NOT ALLOWED IN FILE / FOLDER NAMES!!!” >&2
echo “the following file contain spaces:” >&2
echo -e $SPACE_FILES >&2
echo -e “n” >&2
fi

if [ “$SPACE_BEFOR_PHP_FILES” != “” ]; then
echo “SPACES ARE NOT ALLOWED BEFOR THE PHP TAG IN THE FIRST LINE!!!” >&2
echo “the following file contain spaces:” >&2
echo -e $SPACE_BEFOR_PHP_FILES >&2
echo -e “n” >&2
fi

if [ “$PHP_SHORT_TAG_FILES” != “” ]; then
echo “SHORT PHP TAGS ARE NOT ALLOWED!!!” >&2
echo “the following file contain short tags” >&2
echo -e $PHP_SHORT_TAG_FILES >&2
echo -e “n” >&2
fi

exit 2
fi

# All checks passed, so allow the commit.
exit 0
[/bash]

Uncategorized

42

Heute ist es wieder mal wichtig 🙂 http://www.towelday.org/

Die neue Webseite von St. Vitalis geht auch gut voran, die Administration ist großteils fertig und im Frontend gehts auch halbwegs weiter. http://neu.vitalis.at

Auch hab ich zum ersten Mal Google Apps ausprobiert, muss sagen es geht unkompliziert und schnell :). Einziger wirklich großer Nachteil ist wohl das man zwar seine Eigene Domain verwenden kann, jedoch von dort immer auf eine mail.google.com URL umgeleitet.

Uncategorized

Die Zeit…

Und schon wieder so ein Titel. Die Zeit vergeht leider wirklich viel zu schnell. Und man hat viel weniger Zeit als man gerne hätte.

Ich versuche seit längerem Zeit zu finden ein Installscript für Trac zu schreiben – und es ist einfach keine Zeit dafür.

Gibt aber auch erfruliches – die Stadtpfarre St. Vitalis wird nun bei mir gehostet (die alte Seite ist von mir, schreib auch grad an einer neuen…). Die Seite vom Elternverein ist noch immer nicht umgezogen – liegt aber auch nicht in meiner hand 😦 – trotzdem schade wenn man eine seiner Seite so lange offline sieht.

Culox geht langsam voran und nebenbei habe ich die Seite von einem Freund angefangen. Wird aber noch eine weile dauern bis etwas sinnvolles zu Tage kommt.

Uncategorized

Paintball und Photos

Mittwoch Abend war ich seit langem endlich wieder einmal Paintball spielen. Nach einigen Pannen zu Beginn (zuerst war die Batterie meiner ION leer, und dann die meines Hoppers…) war das ganze wirklich lustig. Wir haben zum Ersten mal auch Fotos und Videos während der Spiele gemacht (Link).

Gestern habe ich dann eine kleine Foto Gallerie geschrieben, die nicht so “aufgeblasen wie Gallery2 oder ähnliches ist. Nun heists nur noch Fotos in den Ordner reinkopieren, mit einem klick die Thumbnails generieren zu lassen und die Gallerie zu geniesen.

Wer das Gallerie Script haben will: Small Gallery – es gibt ein paar Variablen die man anpassen kann – sollte aber “out-of-the-box” gehen.

Uncategorized

Mailscript v2

Soeben ist mein neues Mail Script fertig geworden. Es bringt deutliche Verbesserungen in der Handhabung sowie zusätzliche Funktionen um das Senden eines Return-Paths von PHP aus zu ermöglichen. So kann man nun den 5. Parameter von mail() verwenden um den Return-Path anzugeben.

mail(‘[email protected]’,’title’,’text’,’From: [email protected]’,’[email protected]’);

Das Script kann über die sendmail=”/var/server_email.sh -o 1 -m [email protected]” Einstellung aktiviert/eingestellt werden. Zum Verständnis entweder

server_email.sh -h aufrufen

oder sich den Quelltext ansehen.

Folgende Funktionen sind implementiert:

  • Original Email zustellen / blockieren
  • Kopie an andere Email Adresse senden
  • Quelltext des Emails an ein PHP Script weiterleiten
  • mittels mail() den Return-Path angeben

Download Mail Script v2

Viel Spass damit.