Alexander Nyquist on Dec 12th, 2008Objektorientering i PHP
Den största och enligt mig bästa uppdateringen till PHP5 som släpptes för mer än fyra år sedan är den utökade objektmodellen. Tyvärr är det dock väldigt sällan man ser objektorientering utnyttjas i PHP, vilket är synd, då det ofta bidrar till bättre organiserad kod och separation av olika delar av en applikation.
I en liten miniserie [...]
Alexander Nyquist on Dec 10th, 2008Variabla variabler i PHP
PHP har stöd variabla variabler, vilket fungerar på detta sätt:
$foo = ‘bar’;
$bar = ‘foobar’;
echo $$foo;
Vilket kommer att skriva ut foobar.
Upplys mig gärna om något praktiskt användningsområde för detta.
Alexander Nyquist on Dec 10th, 2008ORM & Kedjade metodanrop i PHP
Jag satt för en tid sedan och började bygga på ett eget ORM-framework, och funderade på olika lösningar för att bygga upp sql-satserna. Det jag kom fram till blev slutligen:
<?php
Class Query
{
private $sql;
public function getSql()
{
return $this->sql;
}
public function [...]
Alexander Nyquist on Dec 10th, 2008Formatera strängar i PHP
Någonting som jag ofta använder mig av i både PHP och C# är metoder för att formatera strängar. I PHP är det främst sprintf som används, och String.Format i C#.
Sprintf fungerar på följande vis:
echo sprintf(‘Hej, jag heter %s’, ‘Alexander Nyquist’);
Första argumentet till sprintf är strängen man vill formatera, och de efterföljande argumenten värdena som nycklarna [...]
Alexander Nyquist on Dec 9th, 2008Parsa XML med PHP
PHP5 kommer som standard färdigkompilerat med biblioteket SimpleXML, vilket är fruktansvärt användbart om när man snabbt vill läsa ut data från en XML-fil.
En simpel kodsnutt för att läsa ut de senaste inläggen från min favoritblogg Gratis tårta skulle kunna se ut enligt följande:
<?php
$feed = ‘http://www.jenst.se/feed’;
$xml = simplexml_load_file($feed);
?>
<h1><?php echo $xml->channel->title; ?></h1>
<em>Senaste inlägg</em>
<ul>
<?php foreach($xml->channel->item as [...]
Alexander Nyquist on Nov 11th, 2008Accordion och Collapsible panel i AJAX control toolkit
Ja, varför ligger dessa (bland flera) i AJAX control toolkitet när de inte har någonting som helst med AJAX att göra? Jag trodde glatt att jag kunde dra in en accordion och flera accordion panels, och sedan få dessa att hämta datan dynamiskt när man expanderade den, men icke, all text bara döljs och visas [...]
Alexander Nyquist on Oct 30th, 2008Wordpress släpper 2.7 preview!
Visst, det är ett par dagar gammalt, men wordpress har nu släppt en screenshot samt information om den kommande versionen. Sidan[1] för att lägga till en ny post känns väldigt fräsch, och alla relevanta funktioner och kontroller finns inom räckhåll, vilket underlättar mycket.
Information[2] är även släppt om den nya dashboarden, där de talar om bland [...]
Alexander Nyquist on Oct 30th, 2008Skapa “e-postbilder” dynamiskt
Tänkte bara dela med mig utav ett skript jag knåpade ihop på ett par minuter, för att generera e-postadresser i bilder dynamiskt.
<?php
$email = htmlspecialchars($_GET[‘email’]);
header (‘Content-type: image/png’);
/* Cache settings */
$cachedir = ‘cache/’;
$cachetime = 60 * 60 * 24 * 5; // 5 days
$filename = $cachedir . md5($email) . ‘.png’;
if(file_exists($filename) && filemtime($filename) > $cachetime)
{
require_once $filename;
}
else
{
$handle [...]
Alexander Nyquist on Oct 30th, 2008C# – Anropa metoder dynamiskt
Jag har tidigare skrivit ett REST-API i PHP, som jag nu av ett antal orsaker var tvungen att porta till C#, och kom på att jag faktiskt inte skrivit särskillt mycket om C# än.
I PHP använder jag Reflection-api:t för att anropa metoder dynamiskt, ungefär enligt http://rest.host.com/klass/method/parametrar. Jag googlade efter olika lösningar folk använder för att [...]
Alexander Nyquist on Oct 30th, 2008MySQL Group by med accent
Edit: bättre lösning i slutet.
I ett projekt är jag tvungen att jämföra olika ord med varandra, ett visst antal gånger.
Logiskt nog använder jag mig utav (simplifierat) SELECT word FROM words GROUP BY word. Idag dök det dock upp problem. Ord som till exempel entré och entre grupperas som samma ord, varför? Jag har faktiskt [...]
Rekommenderas:
Net at once