Crozin's Jogger

Wpisy

Element <button> i obsługa formularzy

4 komentarze 13 listopada 2008

Tłumaczyć chyba nikomu nie trzeba, że przy pomocy elementu <button type="submit">Wyślij</button> można uzyskać dokładnie taki sam efekt, jak z <input type="submit" value="Wyślij" /> jednak możliwości tego pierwszego są zdecydowanie większe, posiadamy możliwość:

  1. Lepszego ostylowania elementu - możemy z nim zrobić właściwie to wszystko co z każdym innym elementem
  2. Umieszczenia w jego wnętrzu innych liniowych elementów XHTML
  3. Ustawienia atrybutu name wraz z value - tego ostatniego nie uzyskamy w przypadku zwykłego inputa, gdyż musimy ten atrybut przeznaczyć na opis przycisku, a nie jego wartość
Czytaj dalej »
Kategorie:
CSS
IE
JavaScript
Techblog
XHTML

(Moje) standardy pisania kodu

27 komentarzy 13 listopada 2008

By kod naszego programu, skryptu czy chociażby strony WWW był czytelny, powinniśmy trzymać się jakiś standardów jego pisania. Oto kilka moich nawyków, propozycji dotyczących PHP.

Wcięcia

Bardzo często spotykam się z opinią, by do tworzenia wcięć używać spacji. Sam zresztą tak robiłem bardzo długo. Ale jednak teraz będę promować Tab, który pozwala chociażby na tak błahą rzecz jaką jest ustawienie jego szerkości przez edytor programistyczny by odpowiadał jednej, dwóm czy czterem spacjom.

<?php
 
if(stmt){
	doSth();
}

Nazewnictwo zmiennych, stałych, funkcji, metod oraz klas

Nie ma dla mnie nic gorszego niż kod, w którym jest $someVar, $some_var, $_some_var na raz.

Zmienne, pola klas i obiektów
Wymagany znak dolara ($) + nazwa zmiennej zapisana w "standardzie" camelCase, zaczynając od małej litery: $someUselessVariable. Dotyczy to również pól klas i obiektów oraz indeksów tablic.
Stałe
Wszystko wielkimi literami, a do separacji kolejnych słów używamy znaku podkreślenia: SOME_CONSTANT.
Funkcje i metody
Dokładnie tak samo jak w przypadku zmiennych, oczywiście z pominięciem znaku dolara. :)
Klasy
Jeżeli nazwa klasy ma być równocześnie ścieżką do jej pliku (a'la ZF) wtedy stosujemy CamelCase, rozpoczynając nazwę wielką literą, a do oddzielenia kolejnych wyrazów używamy znaku podkreślenia, który zostanie zamieniony na slash lub backslash w ścieżce.
Jeżeli nie decydujemy się na takie coś, nazwa jest dokładnie tak samo zapisywana jak w przypadku funkcji i metod.
Pliki
Standardowy CamelCase, rozpoczynając wielką literą.

Bloki kodu PHP

Bez żadnych short_tagów oraz z pominięciem końcowego ?>. Dlaczego? Nie jest on wymagany, a może porowadzić do przypadkowego dostania się jakiejś spacji czy entera, który może przeszkodzić np. w wysłaniu nagłówków HTTP.

<?php
 
$my->php->code['here'];

Łączenie stringów

<?php
 
//nie
$myString = "Hello $who.";
 
//lepiej
$myString = 'Hello ' . $who . '.';
 
//najlepiej:
$myString = sprintf('Hello %s.', $who);

Tablice

W przypadku krótkich zapisów można skorzystać z jednej linii do upchania wszystkiego.

<?php
 
$array = array(1, 2, 'car', 'home', 77.2);

Jednak w przypadku nieco dłuższych każdy element tablicy w osobnej linii, bądź w przpadku ni takich, ni takich po kilka (jednak zachowując stałą ilość) w linii

<?php
 
$short = array(1, 2, 3, 6, 7, 8);
 
$medium = array(
	'cat', 'dog', 'rabbit', 'horse',
	'parrot', 'cow', 'snake', 'bird',
	'camel', 'mice', 'fly', 'bug'
);
 
$long = array(
	'Lorem ipsum dolor sit ament',
	'Lorem ipsum dolor sit ament',
	'Lorem ipsum dolor sit ament'  
);

Klamry i dodatkowe spacje

Klamra otwierająca powinna być w tej samej linii co wyrażenie, zamykająca natomiast w nowej.

<?php
 
if(stmt){
	doSth();
}

Nie ma się też co krępować przed spacjami pomiędzy operatorami (z pominięciem ->) oraz by wyrównać pewne fragmenty kodu.

<?php
 
if($myVar == 'some stmt'){
	$car  = 'red';
	$cat  = 'white';
	$note = 'pink';
}

No i to by było chyba na tyle. :) Jakieś uwagi, sugestie?


Kategorie:
Inne
PHP
Techblog

« Poprzednie wpisy

Sidebar

Blog Portfolio

O autorze

Krzysiek (Crozin) Łabuś - freelancer, programista z zamiłownia.
Blog o standardach sieciowych, oskryptowaniu, narzędziach dla webmasterów itp. Z pewnością znajdą się tutaj wpisy dotyczące XHTML, CSS, nieinwazyjnego JS oraz PHP i baz danych - w przyszłości zapewne tematy związane z Javą.

Digart.pl WebHelp.pl PHP.pl

Szukaj

Wyszukiwarka