diff --git a/.git-scripts/syntax.sh b/.git-scripts/syntax.sh
new file mode 100644
index 0000000000000000000000000000000000000000..efc48ae4b34ac7ac5b4030881aea61b898216dcb
--- /dev/null
+++ b/.git-scripts/syntax.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+IFS=$'\n'
+EX=0
+ERRS="" ;
+WARNS="" ;
+ERRCNT=0 ;
+WARNCNT=0 ;
+
+CMD="find . -type f \( -name \"*.php\" -o -name \"*.lng\" \) -print" ;
+
+if [[ "$1" == "commit" ]] ; then
+	CMD="git diff-tree --no-commit-id --name-only -r ${CI_COMMIT_SHA} | grep -E '\.(php|lng)$'" ;
+fi
+
+for F in $(eval "$CMD") ; do
+	if [[ ! -e "${F}" && -f "${F}" ]] ; then
+		continue ;
+	fi
+	echo -n "${F} ... " ;
+	R=$(php -d error_reporting=E_ALL -d display_errors=On -l "$F" 2>/dev/null) ;
+	RET=$? ;
+	R=$(echo "${R}" | sed "/^$/d")
+	if [ $RET -gt 0 ] ; then
+		EX=1 ;
+		echo "[ERROR]" ;
+		ERRS="${ERRS}${F}:"$'\n'"${R}"$'\n\n' ;
+		ERRCNT=$((ERRCNT + 1)) ;
+	else
+		if [[ "$R" == "Deprecated: "* ]] ; then
+			echo "[WARN]" ;
+			WARNS="${WARNS}${F}:"$'\n'"${R}"$'\n\n' ;
+			WARNCNT=$((WARNCNT + 1)) ;
+		else 
+			echo "[OK]" ;
+		fi
+	fi
+done
+
+echo ""
+echo "--------------------------";
+echo ""
+echo "${ERRCNT} Errors"
+if [ $ERRCNT -gt 0 ] ; then
+	echo "${ERRS}"
+	echo ""
+fi
+
+echo "${WARNCNT} Warnings"
+if [ $WARNCNT -gt 0 ] ; then
+	echo ""
+	echo "${WARNS}"
+	echo ""
+fi
+
+exit $EX
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cdcc6edb29c463727e17621645199224ebe0ab81..4e4a201bfcbb17bd997c528650ffcd13e5cf735f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,7 @@
 # Defines stages which are to be executed
 stages:
   - syntax
+  - syntax_diff
 
 #
 ### Stage syntax
@@ -16,8 +17,35 @@ syntax:lint:
     - merge_requests
 
   script:
-    - composer require overtrue/phplint
     - echo "Syntax checking PHP files"
-    - echo "For more information http://www.icosaedro.it/phplint/"
-    - vendor/bin/phplint
+    - bash ./.git-scripts/syntax.sh
+
+
+syntax_diff:lint:
+  stage: syntax
+  image: edbizarro/gitlab-ci-pipeline-php:7.2
+  allow_failure: false
+  only:
+    - web
+    - pushes
+    - branches
+
+  script:
+    - echo "Syntax checking PHP files"
+    - bash ./.git-scripts/syntax.sh commit
+
+#syntax:lint:
+#  stage: syntax
+#  image: edbizarro/gitlab-ci-pipeline-php:7.2
+#  allow_failure: false
+#  only:
+#    - schedules
+#    - web
+#    - merge_requests
+#
+#  script:
+#    - composer require overtrue/phplint
+#    - echo "Syntax checking PHP files"
+#    - echo "For more information http://www.icosaedro.it/phplint/"
+#    - vendor/bin/phplint