Webdesign und TYPO3 Blog aus DuisburgGit Checkout Files von anderem Branch (20.9.2016, 12:19 UTC)

Git Versionierung ist das Maß aller Dinge beim Webdevelopment mit PHP. Dabei ist natürlich ein Git Checkout ein elementares und wichtiges Kommando. In der Regel wird es allerdings nur dazu benutzt, um neue Branches zu erstellen, zwischen Branches zu wechseln und natürlich Files in der aktuellen Entwicklung zu resetten, also zurückzusetzen. Dabei hat das Git Command noch eine andere wichtige Funktion, die ich heute näher erläutern möchte.

Git Checkout File von Master

Schaut man sich einmal die offizielle Dokumentation zum Git Checkout Command an findet man weit mehr Funktionen, als den einfachen Wechsel zwischen Branches.

When or –patch are given, git checkout does not switch branches. It updates the named paths in the working tree from the index file or from a named (most often a commit)…The argument can be used to specify a specific tree-ish (i.e. commit, tag or tree) to update the index for the given paths before updating the working tree. https://git-scm.com/docs/git-checkout

Leider sind Dokumentationen nicht immer benutzerfreundlich geschrieben. Daher versuche ich mit diesem Blog-Post hier einmal ein wenig Licht in die technische Dunkelheit zu bringen. Grundsätzlich ist es in Git immer möglich mit Hilfe des ‚tree-ish‘ einen bestimmten Commit oder auch ein File von einem anderen Branch aus auszuchecken. Damit man seinen aktuellen Branch mit den Files eines bestimmten Commits aktualisieren kann ist folgendes nötig.

git checkout [-p|--patch] [<tree-ish>] [--] <pathspec>

Git Einzelnes File von anderem Branch auschecken

Git Checkout

Git Checkout – Aspectra

Es kommt natürlich auch bei den besten Webdevelopern vor, daß man sich einmal verstrickt hat. Wenn man mit PhpStormBest Practice arbeitet kenn man natürlich die nützliche Funktion mit einem Remote Branch zu vergleichen. Was aber, wenn man dahin zurück möchte. Es gibt natürlich auch den Fall, daß man sich vielleicht zu erst auf einen aktuellen Stand aus einem anderen Branch bringen möchte. Das kann man hier auch immer auf File-Ebene tun. Hier bietet sich der Web über ein Terminal an, da in in meinen Augen schneller und einfacher ist.

git checkout <branch_name> -- <paths>

Beispiel Git Einzelnes File von anderem Branch auschecken

Es kann sein, daß man gerade Codeception Tests einführt und die Tests auch in seinem Git-Branch verfügbar haben möchte. Hier gibt es natürlich die richtige Möglichkeit den kompletten Branch zu mergen. Hier treten natürlich auch keine Konflikte auf. Sicher? Natürlich besteht die Möglichkeit in seinem aktuellen Branch Änderungen an der composer.json gemacht zu haben. Und vielleicht hat man diese verworfen, will aber trotzdem den Stand von dem anderen Branch.

git checkout cc-testing -- composer.json
git commit -m "Update composer.js from cc-testing"

Fazit Git Checkout Files von anderem Branch

Leider ist die Nutzung der Command Line für viele Webdeveloper noch ein immer eine große Hürde sich fundiertes und professionelles Wissen über Git leicht zugänglich zu machen und anzueignen.

Ich benutze PhpStorm und brauche keine Git-Commands – Webdeveloper mit 4 Jahren Berufserfahrung

Leider fällt mir da auch nicht immer die passende Antwort bei Schulungen ein und ich begebe mich verlegen in ein Schweigen. Natürlich ist das ein Einstellungsproblem und es ist leider exemplarisch für die Realität. Etwas beurteilen zu können setzt in diesem Falle natürlich Fachwissen voraus. Das hier jetzt detailliert auszuführen ist sicher nicht in dem Sinn meiner Leser.

Git bietet tolle Möglichkeiten und entwickelt sich natürlich a

Artikel gek: Lesen Sie den Rest hier (weitere 905 Bytes)

Link
Webdesign und TYPO3 Blog aus DuisburgBash Script für SQL Files in Folder – Database Migration Deployment (11.9.2016, 09:19 UTC)

Es gibt unterschiedliche Möglichkeiten ein automatisiertes SQL Depoyment durchzuführen. SQL Files sind hier eine Option. Dabei kann man dann alle zugehörigen SQL Files in einen Release Folder ablegen und manuell ausführen. Das ist leider keine sehr elegante Lösung, da man hier nicht ohne weiteres zurück rollen kann. Man kann also so gesehen nur nach vorne gehen und hat zudem das Risiko SQL-Statements, die nur einmal ausgeführt werden sollen öfter auszuführen.

SQL Files in Folder mit Bash Script ausführen

#!/bin/bash
sqlfiles=(*.sql)
for i in "${sqlfiles[@]}"
do
 if grep -q PROCEDURE "$i"; then
    echo $i
    mysql -h127.0.0.1 -udbuser -pdbpass exactag < $i
 fi
done

SQL Files Bash Script - googlinux.com

SQL Files Bash Script – googlinux.com

Damit man nicht manuell alle SQL Files einzeln ausführen muß kann man ein Bash-Script nutzen. Das führt dann dann alle SQL Files automatisiert aus. Das oben abgebildete Bash-Script kann das auf eine einfache und unsichere Art tun. Es leider nötig Username und Passwort für die DB mit abzuspeichern. Allerdings erfüllt das Bash-Script seinen Zweck. Es interiert im aktuellen Folder über alle SQL Files und führt diese mit dem MYSQL-Command aus.

Professionells Webdevelopment und Deployment mit Migrationen

PHP Migration Phinx

PHP Migration Phinx

Eine zuverlässige und sichere Lösung bieten Migration Tools, wie Phinx. Hier ist es möglich neue Änderungen einfach automatisiert durchzuführen. Dadurch behält man zu jedem Zeitpunkt die Kontrolle über den aktuellen DB Status. Damit ist es einfach und übersichtlich einen Rollback durchzuführen. Zudem wird verhindert, das SQL-Files doppelt ausgeführt werden. DB Migrations gibt es auch Out-Of-The-Box in vielen PHP-Frameworks. Hier kann man das Doctrine Migrations Bundle in Symfony und die Database Migrations im Laravel Projekt sehr empfehlen. Beim Refactoring von Legacy Code Anwendungen bietet sich Phinx sehr gut an, da es autark neben dem bestehenden Projekt mit Composer einfach hinzugefügt werden kann.

Unterstützung beim Web zu Continuous Integration

Wir haben uns seit langen auf automatisiertes Deployment und Continuous Integration spezialisiert. In den jüngsten Kunden-Projekten haben wir es erfolgreich eingeführt. Dieses Angebot werden wir in den nächsten Monaten gezielt ausbauen. Hier werden wir unter anderem fertige Codeception-Tests für allgemeine Tests und Screenshots in unterschiedlichen Display Auflösungen anbieten. Ein aktuelles Angebot gibt es dazu hier. Build Pipelines für PHP-Projekte.

Der TYPO3 Webdesign Blog Bash Script für SQL Files in Folder – Database Migration Deployment erschien zuerst auf Webdesign und TYPO3 Blog aus Duisburg.

Link
Webdesign und TYPO3 Blog aus DuisburgWarum Continuous Integration wichtig ist (6.9.2016, 12:07 UTC)

Automatisierte Tests und ein automatisiertes Deployment sind sehr wichtig für eine zuverlässige Software in der auch Innovationen möglich sind. Es wird mit Continuous Integration sehr viel Zeit gespart und doch ist es immer wieder eine große Hürde diese tolle Technik einzuführen. Veränderungen sind immer ein schwieriger Prozess und Continuous Integration erfordert bei seiner Einführung viel mehr als nur guten Willen. Deshalb möchte ich mich in diesem Blog-Post an Entscheider und Entwickler wenden. Jeder wird schon einmal versucht haben den eigenen Code-Kosmos oder den in einer Firma zu verändern und nachhaltig zu verbessern und effektiver zu machen. Aber das funktioniert nur, wenn alle das auf einmal gemeinsam tun und sich zielstrebig in die Richtung bewegen. Es kostet sehr viel Energie. Hier müssen sich vor allem die Entwickler-Teams, die bekanntlich immer an ihrer Belastungsgrenze arbeiten, viel Zeit für nehmen und ihre Arbeitsweise auch noch umstellen. Das ist nicht leicht. Schlüssel sind hier u.a. Teamwork und ein stetiger Know-How Transfer.

Denn wenn im Chaos nur einer aufräumt und alle anderen sich nicht kümmern wird es scheitern. Sehr schnell – Roland Golla

Daher dreht sich dieser Artikel nicht um die tatsächliche Implementierung, sondern einfach um Argumente für diese Entscheidung und vor allem gegen den aktuellen Ist-Zustand. Am Ende muß sie von oben gefällt, durchgesetzt und kontrolliert werden. Denn der innere Schweinehund ist auch beim Thema Software-Qualität schwer zu überwinden. Der Gewinn liegt auf der Hand. Software-Qualität bringt Lebensqualität und schlechte Software-Qualität macht bekanntlich krank.

Continuous Integration ist nachhaltig und effizient

Ist-Zustand ohne Continuous Integration

Continuous Integration ist nachhaltig und effizient

Continuous Integration ist nachhaltig und effizient

Software-Entwicklung und das daraus resultierende Produkt ist ein elementarer Bestandteil der Geschäftsmodelle, die im Internet Geld verdienen. Von daher wundert es immer wieder, wie schlecht und ineffektiv hier auch bei professionellen Web-Applikationen gearbeitet wird. Hier arbeiten sehr viele unterschiedliche Stellen und Abteilungen an der Weiterentwicklung und einige wenige bis gar keine auch an der Instandhaltung. Neben dem eigentlichen Webdevelopern sind hier auch Manager, Projektleiter, Product-Owner, das Marketing und natürlich je nach Struktur noch viel mehr Personalien involviert. In kleineren Strukturen belegen vielleicht einzelne Personen mehrere Rollen. Sie alle haben dabei eines gemeinsam. Ein sehr großes Interesse an zuverlässiger und hoher Software-Qualität. Aber tun sie auch etwas dafür und wie versuchen sie diesen Zustand zu ändern?

“Trust is the essential reason we need continuous integration.” via @settermjd

Robert C. Martin alias Uncle Bob hat es schon vor langer Zeit auf den Punkt gebracht. Eines der größten Probleme in der Software-Entwicklung ist das fehlende Vertrauen in die Entwickler von allen anderen Beteiligten. Es ist hier allerdings auch ein schwarzer Peter unterwegs, der natürlich bei dem abgelegt wird, der sich am wenigsten wehrt. Den Webdevelopern. Dabei fängt am Anfang alles so schön ein. Ein spannendes neues Feature soll von einem Entwickler Team umg

Artikel gek: Lesen Sie den Rest hier (weitere 21229 Bytes)

Link
PHPUGFFMAchtung! Neuer Termin für’s September-Treffen! (4.9.2016, 06:12 UTC)

Hallo.

Das September-Treffen wurde auf den 3. Oktober verschoben! Ja, das ist ein Feiertag! Und: Nein, das hindert uns nicht daran eine erlesen Auswahl an Vorträgen am Start zu haben!

Da das Treffen wieder im Silberturm stattfindet, benötigen wir diesmal deine Anmeldungen um dich dort zu registrieren. Die schöne Aussicht aus dem 36 Stockwerk hat eben ihren Preis

Alles weitere findest du auf der Veranstaltungsseite.
The September-meetup has been rescheduled to the 3rd of October! Yes, thats a holiday! And: No, that doesn’t stop us from presenting an excellent range of talks!

We explicitly need your RSVP as the meetup will be held at the Silberturm and we need to preregister you there. The great view has it’s price

You’ll find further informations at the event-page.

Link
PHPUG WürzburgEinladung zum August-Treffen (23.8.2016, 12:12 UTC)

Hallo alle zusammen!

Wir treffen uns am 30. August um 19 Uhr in

Mennas Time Out
Frankfurter Straße 1
97082 Würzburg

Parkplätze sind in der näheren Umgebung ausreichend vorhanden, Straßenbahn-Haltestelle: Wörthstraße.

Ich freue mich auf viele Teilnehmer und rege Diskussionen!

Viele Grüße
Jason

Link
Webdesign und TYPO3 Blog aus DuisburgMySQL Limit Anzahl Datensätze (26.7.2016, 12:06 UTC)

Gerade bei vielen Datensätzen werden diese häufig mit Limit ausgeführt, damit ein Paging eingesetzt werden kann.

MySQL Limit Anzahl Datensätze

MySQL Limit Anzahl Datensätze

Allerdings ist es auch immer eine wichtige Information für den User, wie viele Datensätzen gefunden wurden. MySQL Limit Anzahl Datensätze ausgeben benötigt allerdings die MySQL-Funktion SQL_CALC_FOUND_ROWS in Kombination mit FOUND_ROWS. Dadurch bekommt man dann die Gesamtzahl des abgefragten Queries ohne die Limit Einschränkung. So kann man sehr gut ein Paging Anwenden und den User die Gesamtzahl ausgeben. Das ist eine gute Möglichkeit performant zu bleiben, da man nicht zu viele Datensätze in das Frontend bringt und den Browser nicht zu viel Rendering aussetzt. Das wird leider auch gerne bei der Entwicklung übersehen. Gerade wenn mit APIs entwickelt wird.

MySQL Limit Anzahl Datensätze mit SQL_CALC_FOUND_ROWS und FOUND_ROWS

Hier ein konkretes Beispiel für die Abfrage

SELECT SQL_CALC_FOUND_ROWS name, email FROM users LIMIT 10;
SELECT FOUND_ROWS();

Im Grunde werden hier 2 Abfragen ausgeführt. Hier gibt es zahlreiche Beiträge im Netz, die auf eine schlechte Performance hinweisen. Natürlich ist das ganze langsamer, als nur eine Abfrage mit einem Limit. Aber dennoch ist das ganze hier schneller, als 2 komplette Abfragen durchzuführen.

Blog-Post zum Thema Paging von neunzehn83
https://neunzehn83.de/blog/2010/07/13/blattern-mit-mysql-und-sql_calc_found_rows.html

Der TYPO3 Webdesign Blog MySQL Limit Anzahl Datensätze erschien zuerst auf Webdesign und TYPO3 Blog aus Duisburg.

Link
PHPUGFFMUmzug abgeschlossen (5.7.2016, 20:52 UTC)

Im Laufe des heutigen Tages ist die Homepage der Usergroup servertechnisch umgezogen. Es gab da ein paar kleinere Schwierigkeiten in den Layer-8 Komponenten, die wir erst noch beheben mussten, aber jetzt läuft alles wieder wie geschnitten Brot!

Danke an Stephan Hochdörfer für seinen unermüdlichen Einsatz und bitExpert für die Übernahme des Hostings!

Link
PHP-TagebuchErfahrungen über die Programmierung eines Text Spinners (5.7.2016, 19:29 UTC)

Die letzten Tage habe ich mir einmal die Zeit genommen, einen rein browserbasierten Text Spinner zu bauen. Ich kann mir vorstellen, dass der eine oder andere sich dafür interessiert. Deswegen möchte ich in diesem Artikel ein paar wenig darüber sprechen.

Was ist ein Text Spinner?

Ein Text- bzw. Artikel Spinner ist ein Tool, das es ermöglicht, an Hand eines Textes mit Hilfe einer Markup Sprache wie zum Beispiel Spintax Synonyme für bestimmte Wörter festzulegen. Hat man damit abgeschlossen und genügend Synonyme definiert, generiert der Text Spinner eine Vielzahl an Texten, die sich auf Grund der unterschiedlichen Wörter augenscheinlich unterscheiden, inhaltlich aber identisch sind.

Um das zu veranschaulichen, hier ein Beispiel-Satz aus Wikipedia:

Ein Tisch ist ein Möbelstück, das sich durch eine zugängliche, meist ebene und waagerechte Fläche charakterisieren lässt, die auf einem oder mehreren Beinen ruht, und dem Zweck der Ablage von Gegenständen dient.

Diesen Satz könnte man nun über den Artikel Spinner folgendermaßen bearbeiten:

Ein Tisch ist ein {Möbelstück|Mobiliar}, {das|welches} sich {anhand einer|mithilfe einer} {zugänglichen|erreichbaren}, {meist|häufig} {ebenen|flachen} und {waagerechten|horizontalen} Fläche {charakterisieren|beschreiben} lässt, {die|welche} auf einem oder {mehreren|einigen} Beinen {ruht|steht}, {und|sowie} dem {Zweck|Nutzen} der {Ablage|Lagerung} von {Gegenständen|Sachgegenständen} dient.

An Hand dieser Formatierung kann der Artikel Spinner nun unter anderem folgenden Satz erzeugen:

Ein Tisch ist ein Mobiliar, welches sich mithilfe einer erreichbaren, häufig flachen und horizontalen Fläche beschreiben lässt, welche auf einem oder einigen Beinen steht, sowie dem Nutzen der Lagerung von Sachgegenständen dient.

Wozu dient das Umschreiben von Texten?

Es gibt diverse Gründe, warum Texte umgeschrieben werden sollten.

Dahinter können natürlich fragwürdige Absichten stehen – wie zum Beispiel das Umschreiben von Texten, um diese dann als eigene auszugeben. Hierbei gab es ja schon einige Skandale von diversen Prominenten und Politikern, die im Nachhinein ihre Doktorarbeit aberkannt bekommen haben. Aber ja, ein Text Spinner kann auch hierbei helfen.

Ein weiterer Grund, der mich auch zur Entwicklung des Spinners bewogen hat, ist das Verfassen von Texten für meine Webseiten.
Google liebt guten – und vor allem einzigartigen – Content und ein Artikel Spinner hilft dabei, Texte aus diversen Quellen schnell und einfach entsprechend anzupassen. Wer selber Artikel im Netz verfasst, weiß, dass es nicht immer einfach ist, Texte so zu schreiben, dass sie nicht als duplicate content angesehen werden können. Da ist es hilfreich, wenn man die Texte noch einmal vor der Veröffentlichung durch einen Text Spinner bearbeitet.

Auch in dem Fall ist es möglich, einen fremden Text einfach zu kopieren und entsprechend mit Synonymen zu versehen. Es gibt aber Hinweise darauf, dass Google bereits Synonyme erkennen kann und solche Texte demzufolge dann trotzdem als duplicate content wertet. Um einen gut rankenden SEO-Text zu verfassen, reicht also ein schnelles Durchjagen durch den Spinner nicht aus – eigene Recherche ist weiterhin notwendig, der Spinner hilft nur dabei.

Worauf basiert TextGen?

TextGen läuft mit PHP und Laravel 5 im Backend sowie Angular JS und Websockets im Frontend.
Laravel ist aktuell mein liebstes PHP Framework, weil es einfach viele Sachen vereinfacht, eine gute Community hat und es erlaubt, relativ einfach sauberen Code zu schreiben.

Ich setze dabei immer auf Dependency Injections, während ich bis auf in den Views auf statische Facades verzichte. Auch ActiveRecords instanziiere ich nicht wahllos im Code, sondern greife auf ein Repository zurück. Wenn also an der Datenbank hantiert wird, wird immer ein Repository verwendet. Bis auf einer Ausnahme: Beim Auslesen der Synonyme werden raw Da

Artikel gek: Lesen Sie den Rest hier (weitere 10042 Bytes)

Link
Coding – bytelude[Quicktip] Wie kann ich alle installierten Python pip Packages upgraden? (5.7.2016, 18:00 UTC)

Über einen kleinen Umweg kann man auf der Bash ganz einfach alle aktuell installierten pip Pakete updaten / upgraden:

pip freeze | sed -e 's/==.*//g' > upgrade.txt
pip install --upgrade -r upgrade.txt
rm upgrade.txt

Das Script lässt sich alle installierten Pakete ausgeben, entfernt das “==[Versionsnummer]” hinter dem Namen und packt diese Liste in die Datei upgrade.txt. Anschließend wird diese Datei bei einem “pip upgrade” als “requirements.txt” übergeben und mit dem upgrade Befehl ausgeführt.

Flattr this!

Link
Webdesign und TYPO3 Blog aus DuisburgPhpStorm Adding, Deleting und Moving Lines (3.7.2016, 12:51 UTC)

PhpStorm ist die beliebteste Webdevelopment IDE im Bereich der PHP-Entwicklung.

PhpStorm Adding, Deleting und Moving Lines

PhpStorm Adding, Deleting und Moving Lines

Der Artikel „PhpStorm Adding, Deleting und Moving Lines“ richtet sich vor allem an Entwickler, die effektiver und effizienter arbeiten möchten. In der Vielzahl von Shortcuts, Plugins und Möglichkeiten verliert sich leider oft der praktische Bezug wichtige Helferlein für die tägliche Arbeit zu finden. Hier steht natürlich auch die Bearbeitung von ganzen Linien auch im Fokus. Hier kann man mit einigen wenigen PhpStorm-Shortcuts schon sehr viel mehr Geschwindigkeit in seine Arbeit bringen und dadurch auch eine höhere Motivation bekommen.

PhpStorm Adding Lines

Da Hinzufügen – Adding von neuen Zeilen ist denkbar einfach. Man braucht hier nur die Enter-Taste zu benutzen. Dadurch alleine wird schon der Curser an die richtige Position gestellt. Das ist natürlich nichts neues und schon immer auch in anderen IDEs möglich gewesen.

PhpStorm Deleting Lines

PhpStorm Deleting Lines kann man ganz einfach mit CMD+DEL ausführen. Es ist also nicht nötig ganze Zeilen zu markieren und dann mit 2*DEL zu entfernen. Das ganze kann so auch auf ganze Blöcke ausgeführt werden. Hier ist es sinnvoll diese nicht mit der Maus, sondern mit SHIFT-Arrow zu markieren. Generell ist es immer effektiver keine Maus zu benutzen.

PhpStorm Moving Lines

Eine ausgesprochen sinnvolle Funktion ist das verschieben von Lines oder ganzen Codeblöcken. Mit CMD+Shift+Arrow kann man die Blöcke schnell hoch und runter bewegen und mit Block oder SHIFT+Block richtig einrücken. Das braucht man vor allem beim Code-Refactoring.

PhpStorm Duplicate Lines

Copy & Paste sind böse und können schnell sehr schlechten Legacy Code produzieren. Gerade bei Code-Reviews und Code-Refactoring fällt das immer wieder auf. Natürlich ist es hier viel sinnvoller mit guten Live-Templates zu arbeiten und dadurch Probleme, wie z-B. die falsche Variablen Benennung zu umschiffen. Man sollte hier immer extrem wache sein, da immer bei dem Anwendungsfall wahrscheinlich ein Refactoring direkt möglich ist. Die Tastekombination ist jedenfalls CMD+D.

Fazit PhpStorm Adding, Deleting und Moving Lines

Zeilen zu bearbeiten ist wohl genau das was Webdeveloper den ganzen Tag machen sollten. Hier kann man mit einigen wenigen Shortcuts wesentlich effektiver und auch genauer arbeiten. Vor allem das verschieben und duplizieren von Code ist ein mächtiges Werkzeug mit dem man viel in kurzer Zeit bewältigen kann. Es ist wichtig naben dem Entwicklungsprozess mit dem Ziel der Fertigstellung auch immer einen Blick im Bezug auf Clean-Code zu haben. Denn „Later equals never“.

PhpStorm Schulung für Webdeveloper

Das Team von Entwicklungshilfe NRW hat sich schon lange intensiv mit den Shortcuts auseinander gesetzt und bietet hier eine Schulung für Best-Practice an. Hier geht es zu der PHP-Schulung für PhPStorm.

Der TYPO3 Webdesign Blog PhpStorm Adding, Deleting und Moving Lines erschien zuerst auf Webdesign und TYPO3 Blog aus Duisburg.

Link
LinksRSS 0.92   RDF 1.
RSS 2.0 Feed   RDF 1.
100% Planet PHP   PHP5 powered
PEAR powered  
Code wird von Planet-PHP zur Verfügung gestellt. Vielen Dank.