Hoppa direkt till innehåll

PHP Beautifier

2008-09-24 -
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
Recension: Bohusgården Hotell & Konferens
Recension: Elite Palace
Nytt projekt på gång: Ljussablar som ljuskälla
Hemma-Spa klart!
Alien: Romulus
Utebaren klar!
Börjar likna en bar!
Reglar på plats
Rivning pågår!
Mjölner!
Örnen börjar bli redo för Sweden Rock
Utebar!
Mixtejp
Norrsken
Kan ha "råkat" skaffa något på Sci-Fi-mässan
Recension: Steam Hotell
Det börjar ta form med hemma-spa:et
Rostfärg och IKEA-lampa
Create a physical book from my digital book
Survey Island
Someone is trying to sell my map!
Julkalender
Myst book updated
Recension: Yasuragi Ryokan Hanare
Recension: Ad Astra
Ny tatuering - midgårdsormen!
Minnestal till en kaffekopp
Förlovade
Sweden Rock 2023
Ny nummerskylt för huset
Fix i husbilen
Grubbelgubbe
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
Använda laserskäraren för att skapa innehål...
Julklappar med laserskärare
Budget-Spa
Nyckelskåp
Fjällkaffe
1/20 DeLorean Time Machine
Caso Outdoor Cooler
Minikyl Coca Cola
Verktygsvagn med verktyg, 161 delar
CSS filters for background images
Huset ommålat!
Skiss för tatuering