jan 08

Byta från PHP Storm till NetBeans 10.0

Först kan man fråga sig varför man ska byta från PHP Storm till NetBeans. PHP Storm är i jämförelse enligt mig det bästa alternativet för att programmera PHP. Ändå kör jag numera NetBeans på mina hemmaprojekt och trivs bra med det.

Kostnaden för PHP Storm är €8.90/per månad. Man kan få det billigare om man köper årsvis €89.00/1st year, €71.00/2nd year, €53.00/3rd year onwards.
Se mer här.

NetBeans är gratis men det gäller att den klarar det man vill göra också. Här får du tips hur du gör.

Continue reading

maj 01

Magento 2.2.3 – Snabbare

I den här guiden ska vi få upp hastigheten på en lokalt installerad Magento 2.2.3 som installerats med MySQL, Apache2, PHP 7.0 på en Ubuntu 16.04 LTS.
http://www.charzam.com/2018/04/29/magento-2-2-3-installation/
Målet är att få ett snabbare utveckligssystem lokalt. Några av tipsen nedan kan även användas i en skarp miljö.

Magentokommandot

Du kommer att behöva köra magentokommandot ganska många gånger.
Gå in i magentokatalogen och skriv:

sudo php bin/magento

Om du vill ha det lite smidigare kan du göra så här:
Gå in i magentokatalogen/bin och skriv pwd för att få den fulla sökvägen hit.
Jag har: /home/peter/sites/m2/bin

Continue reading

apr 29

Magento 2.2.3 – Installation

Jag har dokumenterat en installation tidigare av Magento 2. Det var för 2 år sedan. http://www.charzam.com/2016/03/13/magento-2-installera-lokalt/

Idag ska jag installera Magento Open Source v 2.2.3 på en Ubuntu Linux 16.04 LTS, lokal installation så jag kan utveckla moduler.
Jag har redan installerat MySQL, Apache2 och fått igång andra webbplatser på maskinen.
http://www.charzam.com/2010/10/30/lamp-install/

Jag har satt upp en domän (vhost) och skapat en katalog.
Mitt domännamn är: local.m2.charzam
http://www.charzam.com/2017/06/02/flera-domannamn-pa-samma-webserver/

Jag har laddat ned Magento Open Source 2.2.3 utan exempeldata. Du kan ta med exempeldata om du vill eller installera det senare. Du behöver skriva in ditt Magento-login eller skapa ett login.
https://magento.com/tech-resources/download

Just nu är det inte möjligt att testa docker-uppsättningen som Magento normalt tillhandahåller. Den är borta för underhållsarbete. Men det blir en framtida guide.

Continue reading

jan 21

PGP – Pretty Good Privacy

PGP – Pretty Good Privacy hjälper dig att kryptera dina filer, dina meddelanden, dina epost.
Om du programmerar i PHP så finns det stöd för GnuPG (Öppen version av PGP) kryptering.

I den här texten får du en lista med kommandon hur du använder GnuPG på din dator.
Med GnuPG kan du kryptera dina texter och binärfiler för personligt bruk,
eller kryptera en kopia av din fil så bara en specifik mottagare kan dekryptera filen.

Alla kommandon kommer från den officiella GnuPG manualen.

Continue reading

aug 11

Redis

redisRedis lagrar nyckel+data i minnet och är mycket snabb på just detta.
Den används för att få bättre prestanda på webbsidor genom att lagra färdiga resultat i Redis och sedan hämta dem vid behov.

Redis hemsida: http://redis.io

I den här guiden ska jag använda Redis + PHP på MacOS 10.11
Jag förutsätter att du har Homebrew installerad på din Mac.

Lade även till instruktioner för Ubuntu 17.04

Continue reading

jun 11

Felsöka xdebug

xdebugI och med att jag uppgraderade till PHP 7.0 var jag också tvungen att uppgradera till xdebug 2.4. Det var inga problem i Ubuntu 16.04 men när jag gjorde uppgraderingen i OSX 10.11.5 då gick något snett.
Det finns många bra guider på nätet för att uppgradera till PHP 7.0 och xdebug, till exempel den här.

Den här artikeln är uppdaterad 2017-05-13 efter att jag åter fått felsöka xdebug i MacOS.

Så om det nu går fel med xdebug, hur ska man felsöka?

Continue reading

okt 04

Funktionsvariabler

Du kan skicka in variabler i funktioner i de flesta programmeringsspråk. Det kan se ut så här:

function MyFunction($myData1 = 123, $myData2 = 'Hello')

Om du skriver så här:

MyFunction(,'Hej');

så betyder det att du nöjer dig med standardvärdet på första variabeln, och sätter ett eget värde på den andra variabeln.

Om du råkar blanda ihop det hela och skriver:

MyFunction('Hej', 456);

Då måste MyFunction göra en kontroll av varje variabel att den innehåller det som förväntats.
Programmeringsspråk som har en inbyggd kontroll av variablernas datatyp kommer att protestera. Men PHP och Javascript har inte detta (PHP har en svag kontroll i senare versioner av PHP)

Jag ska presentera ett förslag för dig så får du fundera på det. Det här förslaget fungerar i alla programmeringsspråk men jag ger dig ett exempel i PHP och i Javascript.

Continue reading

apr 26

Användandet av goto i programkod

goto-jailNär man skriver programkod är det av yttersta vikt att det ska vara lättläst. Hellre lättläst än snabbt brukar jag arbeta efter. Ofta är det sällan någon större skillnad i snabbhet mellan kod man förstår och krånglig kod som ingen vågar röra.

Den här artikeln handlar om kommandot ”goto” och dess dåliga rykte. Goto finns i språket PHP sedan v 5.3 men tyvärr inte i Javascript. Det är på inget sätt dåligt att använda kommandot goto. Alla kommandon kan användas på ett sätt som gör det svårare eller lättare att läsa programkoden.

Här kommer ett exempel i Javascript som innehåller en massa if-kommandon.

Continue reading

mar 27

Magento API – ett exempel i PHP

soapDu kan kommunicera med Magento via dess API och till exempel hämta ut ett urval av produkter. Lägga ordrar och allt annat du kan tänka dig. Det här är perfekt om du vill koppla ihop två olika plattformar, till exempel Magento och en app, eller hämta ordrar från Magento in i ett ekonomisystem, eller få din kampanjsite att hämta data från Magento.

Målet med den här övningen är att ge produkt ID till Magento och få ut data om den produktens relaterade produkter genom att använda Magentos API.
Inspiration kommer från certifieringsfrågorna för Magento och från den här hemsidan.

Continue reading

nov 12

Snabba upp din Mac

Min MacBook Pro från 2011 har fått jobba i nästan ett helt år utan någon större genomgång och den börjar bli seg. Det märks i Magento Admin där alla klick tar några sekunder. Å ena sidan har jag inte tid att fixa detta, å andra sidan har jag inte tid att vänta tusen gånger om dagen i små bitar heller.

Det vart en seg dag men resultatet blev över förväntan. Nu klickar jag och Magento reagerar omgående. Jag kommer att spara massor av tid framöver.
Här kommer några tips samt sidor som jag följt.

Reparera hårddisken
När du startar din Mac kan du hålla inne CMD+R för att komma in till menyn med reparationsprogram. Där kan du köra Disk utility och kontrollera rättigheter och status på din hårddisk. Här kunde jag reparera disken och fixa rättigheter.

Fem tips
Jag hittade en bra sida som ger fem effektiva tips till en snabbare Mac.
OnyX och Monolingual var två nya bekantskaper som gjorde mycket nytta.

Minne har jag redan 8Gb och hårddisken är en snabb SSD på 256 Gb men annars är SSD disk absolut en bra prestandaökare. Jag kommer aldrig att köra en mekanisk hårddisk igen.

Byt till Chrome
Firefox har varit hörnstenen när jag utvecklar. Men Google Chrome är så mycket snabbare. Och det är nyttigt för dig att byta och lära nytt. På jobbet räknas enbart snabbhet och då är Chrome bra, men privat värderar jag andra saker högre och då är det Firefox som gäller.

Uppgradera till Mac OS 10.10 Yosemite
Uppdateringen är gratis från App store. Det är viktigt att följa med och uppgradera. Säkerhetshål stängs (och nya öppnas) men oftast blir datorn också snabbare av en uppgradering. Själva uppgraderingen till MacOS 10.9 och till 10.9.5 gick nästan smärtfritt så jag körde igång Uppgraderingen till 10.10. Den fungerade som den skulle men MAMP slutade fungera. Trots mycket tid och ansträngning fick jag MAMP att bara delvis att fungera.
Nu fanns inte mer tid att mecka, jag måste arbeta. Alternativet är att köra de inbyggda programmen.

Byt ut MAMP mot de inbyggda alternativen
MAMP är bra, enkel att använda och tyvärr inte så rapp som man skulle önska.
MacOS har inbyggda versioner av Apache och PHP, och du kan enkelt ladda ned den senaste MySQL. Här är en bra guide.

Slutsats
Varför gjorde jag inte detta för ett år sedan? Väntetiderna i Magento är nästan borta. Det är rappt och snabbt. Inte så snabbt som en stationär dator med Ubuntu men en betydande förbättring. Det var värt ansträngningen. Nu ska jag bara kolla att xdebug fungerar så det går att debugga kod imorgon med Chrome och PHP Storm.