Flera domännamn på samma webserver

 LAMP, Operativsystem, PHP, Ubuntu, Webbutveckling  Kommentarer inaktiverade för Flera domännamn på samma webserver
Jun 022017
 

Intetsägande bild till den här artikelnHär kan du som utvecklare i LAMP (Linux, Apache, MySQL, PHP) se hur man sätter upp vhosts.
vhost används när du vill koppla flera domänadresser till en och samma server som bara har en IP adress.

Till exempel kanske du vill ha www.exempel1.com till katalogen /var/www/www.exempel1.com
och www.exempel2.com till /var/www/www.exempel2.com

Jag har tidigare skrivit om hur du sätter upp vhost i MacOS. Det är exakt samma princip i Ubuntu, bara lite andra filnamn.

Continue reading »

Redis

 Admin, Databas, Installation, MacOS, Magento, PHP, Webbutveckling  Kommentarer inaktiverade för Redis
Aug 112016
 

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.

Continue reading »

Felsöka xdebug

 Felsökning, PHP, Problemlösning  Kommentarer inaktiverade för Felsöka xdebug
Jun 112016
 

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 »

Funktionsvariabler

 Javascript och jQuery, Nyheter, PHP, Webbutveckling  Kommentarer inaktiverade för Funktionsvariabler
Okt 042015
 

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 »

Användandet av goto i programkod

 Javascript och jQuery, PHP, Webbutveckling  Kommentarer inaktiverade för Användandet av goto i programkod
Apr 262015
 

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 »

Designmönster

 Filosofi, PHP, Webbutveckling  Kommentarer inaktiverade för Designmönster
Apr 092015
 

catdoor

[Designmönster] [Skapandemönster] [Strukturmönster] [Beteendemönster]

Det finns en bok som heter ”Design patterns”, skriven av fyra författare redan 1994. Boken kallas ”gang of four”. Den handlar om återanvändbara designmönster i objektorienterad programmering.

Har du funderat på varför dörrar som människor använder oftast har gångjärn på höger eller vänster sida, medan kattluckor oftast har gångjärnen högst upp, och smala garageportar åker upp medan breda garageportar åker åt sidan. Alla de här dörrdesignerna har visat sig ge mest fördelar och minst nackdelar av alla de designmönster man skulle kunna ha.

När det handlar om objektorienterad programmering är saker än mer komplicerade. En bra idé kan till slut bli en börda och man kan till och med få förkasta kod och börja om. Då är det bättre att använda beprövade designmönster för att undvika de värsta problemen redan från början.

Det finns massor av designmönster i objektorienterad programmering. Tänk på att en del objektorienterade språk inte behöver vissa designmönster, språkets design har gjort dem onödiga. Tänk också på att dessa designmönster är för objektorienterad programmering. Det finns andra kraftfulla sätt att programmera och de har sina egna designmönster (beprövade lösningar).

Det jag saknar på Wikipedia och i boken är exempel i PHP och en enkel förklarande text med när och varför man ska använda detta mönster. Därför samlar jag PHP exempel här.

Continue reading »

Magento API – ett exempel i PHP

 Magento, Nyheter, PHP, Programmerare, Webbutveckling  Kommentarer inaktiverade för Magento API – ett exempel i PHP
Mar 272015
 

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 »