Jump to content
php.lv forumi

JMP ieks phm ?


slitz

Recommended Posts

Nesaprotu, kur ir problēma:

if (nosacījums1
|| nosacījums2
|| nosacījums3)
{
//...
}

 

Un vispār, ja vienā nosacījumā jāliek desmit dažādas pārbaudes, tad ir jāpadomā vai koda struktūra nav aizbraukusi auzās.

Link to comment
Share on other sites

bubu, es ko tādu domāju

$args = array();
do{
if(!$reques->get('do')) {
	$view = new myInputFormView();
	break;
}
if($errors = $validator->validate($request)) {
	$view = new myInputFormView();
	$args['errors'] = $errors;
	$args['request'] = $request;
	break;
}
$dataItem = new myDataItem();
$dataItem->fill($request);
if($errors = $dataItem->save()) {
	$view = new myErrorView();
	$args['errors'] = $errors;
	break;
}
$view = new mySuccessView();	
}while(0);
$view->render($args);

Edited by john.brown
Link to comment
Share on other sites

Tie nav normāli nosacījumi. Normāli cilvēki if nosacījumā salīdzina, nevis piešķirt. Šādi tu tikai kodu padari grūti saprotamu un neviegli izsekojamu.

 

Šajā vieta imho labāk derētu exceptioni - tad nevajadzētu funkcijām rezultāta vietā atgriezt failošanas flagu. Tb - ja kautkas nesanāk - izmetam exceptionu un miers. Lai to ķer tajā vietā, kurā vajadzīgs ķert. Nevajag garus spagetti if kodus rakstīt (ja jau programmējam OOP).

Link to comment
Share on other sites

Ja php5, tad jau var arī exception`us. Es gan neteiktu, ka tas sanāk daudz saprotamāk, bez tam, uzreiz nāk klāt darbiņš sacerēt normālas exceptionu klasītes - lai iekš šamām kāda sakarīga informācija būtu. Nu, bet tas jau gaumes jautājums :)

 

Normāli cilvēki if nosacījumā salīdzina

Nu neteiktu gan. If nosacījums pārbauda, vai tas, kas šamā uzrakstīts ir taisnība (true) vai meli (false). Piemēram if($variable) {} ir pilnīgi korekti, kaut es neko nesalīdzinu :) Un lasās mani nosacījumi gamdrīz normālā cilvēku valodā - ja ir kļūda saglabājot itemu, tad... Kas tur grūti lasāms?

 

Nu nekādi neteikšu, ka šitas ir saprotamāks:

$args = array();

if(!$reques->get('do')) {
$view = new myInputFormView();		  
}
else {
try {
	$validator->validate($request);
	$dataItem = new myDataItem();
	$dataItem->fill($request);
	$dataItem->save();
	$view = new mySuccessView(); 
}
catch(ValidateExcepton $e) {
	$errors = $e->getErrors();
	$view = new myInputFormView();
	$args['errors'] = $errors;
	$args['request'] = $request;	
}
catch(DataItemException $e) {
	$errors = $e->getErrors();
	$view = new myErrorView();
	$args['errors'] = $errors;
}
}	 
$view->render($args);

 

Bez tam, divas exceptionu klases jārakst. Un validatora gadījumā tā nebūt nav triviāla :)

Edited by john.brown
Link to comment
Share on other sites

šādi jau tie paši ifi vien tik ir, vai kļūdu, ka nav aizpildīs obligāts lauks mest exceptionā nezinu. imho exceptionos jāķer nestandarta kļūdas.. kāds spēlejies ar id, kaut kādu failu vairs nevar atrast, nevar pie db piekonektēties etc.

Edited by v3rb0
Link to comment
Share on other sites

×
×
  • Create New...