Skip to main content

PHP Beautifier

09/24/2008 -
Jag använder BBEdit som min texteditor och det finns en funktion som den saknar, och det är möjligheten att re-indentera koden. Det betyder alltså att säga åt editorn att sätta in tabbar och sådant där det ska vara för att koden ska flyta snyggt i textmassan, if-satser och sådant ska positioneras på rätt sätt och sådant. Men det finns däremot ett väldigt bra PHP-bibliotek som heter PHP Beautifier (som också kräver att du har PEAR-paketet installerat) som kan göra detta automatiskt och efter vissa givna regler. Så hur använder man detta i BBEdit då? Ja, det är riktigt enkelt. Använd det här scriptet:
error_reporting(E_ALL|E_STRICT);
require_once ('PHP/Beautifier.php');
require_once ('PHP/Beautifier/Batch.php');
if ($argv[1]) {
  try {
    $beauty = new PHP_Beautifier();
    $batch = new PHP_Beautifier_Batch($beauty);
    $batch->addFilter('ArrayNested');
    $batch->setIndentChar("  ");
    $batch->setIndentNumber(1);
    $batch->addFilter('IndentStyles', array('style' => 'k&r'));
    $batch->setInputFile($argv[1]);
    $batch->process();
    print trim($batch->get());
  }
  catch(Exception $exp) {
    echo ($exp);
  }
}
Vad scriptet gör att den går igenom $argv och snyggar till den efter givna regler, och i det här fallet så använder den stilen "k&r" vilket är en förkortning av Kernighan & Ritchie och är en indenteringstil som passar mig och ser i regel ut så här:
if (cond) { # do... }
Jag säger också åt den att indentera med 1 tabb. Sen kan man välja att köra med filtret "ArrayNested" och det är en smaksak, men det gör om en array som ser ut så här:
$apa= array("utter", "giraff", "elefant", "ostrich");
Till detta:
$apa= array(
  "utter",
  "giraff",
  "elefant",
  "ostrich"
);
Men det kan också skapa problem, där sådan här kod:
if(in_array($apa, array("one", "two", "three"))){
  # do stuff...
}
Blir detta:
if(in_array($apa, array(
  "one",
  "two",
  "three"
))) {
  # do stuff...
}
Vilket kan se rörigt ut, men du får själv avgöra om du vill använda den med andra ord.

BBEdit?

Ja, hur använder du då detta i BBEdit? Jo, spara ovanstående script i BBEdits unix filter-mapp (i menyn: #!->Unix Filters->Open filters folder) och sedan öppnar du filter-listans fönster (Windows->Palettes->Unix filters) och där kan du sätta ett kortkommando för scriptet. Sen är BBEdit så himla smart när den kör PHP-script att den markering du har i ditt aktiva fönstret (eller hela dokumentet om ingen markering finns) stoppas i $argv så parsningen sker per automatik och allt ser himla snyggt ut helt enkelt.
Mer i Webblog
Absolut Antique  Absolut Death Star
Hur vljer man publiceringsverktyg fr webben
Sandman recenserar Crysis Warhead
PHP Beautifier
Ny dammsugare
Forum p sandmannet
Nutid dtid hur symbolsprket frndras
Nordic: The Musical
I-IV: Loke: Gudarnas spel
Nordic: The Musical
I-V: Freja: Oändlig kärlek
Ljussabel-projektet
Hemma Bäst
Skåp till Ute-TV
Thåström i Globen
Födelsedagspresent
Bröllopspresent
Borta Bra
Recension: Jacy's
Thåström
Nordic: The Musical
I-III: Oden
Nordic: The Musical
I-II: Yggdrasil
Nordic: The Musical
I-I: Ginnungagap: Allting börjar alltid någonstans
Borta Bra
Recension: Bohusgården Hotell & Konferens
Borta Bra
Recension: Elite Palace
Nytt projekt på gång: Ljussablar som ljuskälla
Hemma Bäst
Hemma-Spa klart!
Alien: Romulus
Hemma Bäst
Utebaren klar!
Hemma Bäst
Börjar likna en bar!
Hemma Bäst
Reglar på plats
Hemma Bäst
Rivning pågår!
Mjölner!
Borta Bra
Örnen börjar bli redo för Sweden Rock
Hemma Bäst
Utebar!
Mixtejp
Norrsken
Kan ha "råkat" skaffa något på Sci-Fi-mässan
Borta Bra
Recension: Steam Hotell
Hemma Bäst
Det börjar ta form med hemma-spa:et
Rostfärg och IKEA-lampa
Myst Book
Create a physical book from my digital book
Myst Book
Survey Island
Myst Book
Someone is trying to sell my map!
Julkalender
Myst Book
Myst book updated
Borta Bra
Recension: Yasuragi Ryokan Hanare
Borta Bra
Recension: Ad Astra
Ny tatuering - midgårdsormen!
Minnestal till en kaffekopp
Förlovade
Borta Bra
Sweden Rock 2023
Ny nummerskylt för huset
Fix i husbilen
Grubbelgubbe
Hemma Bäst
Uppdateringar i verkstaden!
Måla med rostfärg
Vårfix i trädgården
Jung Kook
Pappaskämt och annan humor
Bilder på spelbordet när det används