Studs framework para PHP


Graças a algumas mudanças aqui no trabalho, tivemos que repensar o uso do Code Igniter como framework para os sistemas PHP. A idéia é aproximar programadores Java e PHP, e fazer com que ambos sejam capazes de desenvolver em qualquer uma das duas linguagens. Por isso eu disse que estava bebendo do café, uns tempos atrás.

Pra facilitar o trabalho de todo mundo, e até mesmo facilitar o entendimento da framework Struts do Java, pelos programadores PHP, resolvemos testar alguns portes desta aplicação. Com a ajuda do Leonardo Rodrigues, que programa Java e PHP, adotamos o Studs por ela ser, segundo ele, bem fiel ao Struts.

Achei a documentação um pouco fraca, e não esclarece muito como a framework funciona, mas entender o funcionamento das coisas, pelo menos até aqui, não foi muito difícil.

De cara o Leonardo achou uma diferença entre o Struts e o Studs, que é a possibilidade de definir qual método da classe será acionado pela action, configurado pela propriedade parameter do elemento action no struts-config.xml. Mas nada que uma mexida no núcleo não resolva. :) . Basta abrir o arquivo RequestProcessor.php, na pasta WEB-INF/studs/action/. Procure o método processActionExecute. Segue o método alterado:


function &processActionExecute(&$request, &$response, &$action, &$form, &$mapping)
{
	$parameter = $mapping->getParameter() ? $mapping->getParameter() : 'execute';

	// try {
	$result =& $action->$parameter($mapping, $form, $request, $response);
	//$result =& $action->execute($mapping, $form, $request, $response);
	// } catch (RootException $e) {
	if ($e = catch_exception())
	{
		$result =& $this->processException($request, $response, $e, $form, $mapping);
	}
	// }

	return $result;
}

Dessa forma você não precisará fazer uma classe pra cada Action, e, se não definir um parameter, o Struds vai assumir o comportamento padrão, que é executar o método execute().

  1. No comments yet.
(will not be published)