Witajcie,
czy taki kod
<?xml version="1.0" encoding="utf-8" ?>
<!--
Moduł aFRM
Parametry:
name - nazwa modułu (wymagana)
version - wersja modułu w postaci DDMMRR albo "devel" (wymagane)
description - opis modułu (wymagane)
-->
<module name="news" version="devel" description="News system module">
<!--
Autor modułu
Parametry:
name - Nazwa autora (wymagane)
email - Adres email (wymagane)
website - Strona WWW autora (opcjonalne)
-->
<author name="Amadeusz Jasak" email="[email protected]" website="http://alfanick.biz" />
<!--
Akcje obsługiwane przez moduł
-->
<actions>
<!--
Akcja modułu
Parametry:
on - Zdarzenie obsługiwane przez moduł - render, error, display, none (wymagane)
name - Nazwa akcji (wymagane przy on="display")
handler - Funkcja lub metoda klasy obsługująca akcję (wymagane)
template - Szablon przypisany do akcji (opcjonalne)
uri - Szablon adresu URI w postaci /%zmienna1/%zmienna2=domyslne/%zmienna3/ (opcjonalne)
-->
<action on="display" name="display" handler="%(HANDLER_CLASS)::actionDisplay" template="default" uri="/%id/%name/" />
<action on="display" name="list" handler="%(HANDLER_CLASS)::actionList" template="page" uri="/%page/%order=ASC/" />
<action on="error" handler="%(HANDLER_CLASS)::onError" template="error" />
</actions>
<!--
Szablony modułu
-->
<templates>
<!--
Szablon
Parametry:
name - Nazwa szablonu (wymagane)
file - Plik szablonu (wymagane)
type - Typ szablonu - content, list, error, header, other (opcjonalne)
-->
<template name="default" file="%(MOD_DIR)/templates/news.tpl" type="content" />
<template name="page" file="%(MOD_DIR)/templates/page.tpl" type="list" />
<template name="error" file="%(MOD_DIR)/templates/error.tpl" type="error" />
</templates>
<!--
Zależność modułu od innych
Parametry:
on - Nazwa modułu (wymagane)
version - Wersja modułu (opcjonalne)
by - Zależność - tables, logic, files, all (wymagane)
-->
<depends on="users" by="tables" />
<!--
Tabele modułu
-->
<tables>
<!--
Tabela
Parametry:
name - Nazwa tabeli (wymagane)
-->
<table name="news_categories">
<!--
Pole tabeli
Parametry:
name - Nazwa pola (wymagane)
type - Typ pola - zgodne ze SQL, w nawiasie opcjonalny rozmiar (wymagane)
key - Klucz tabeli (opcjonalne)
increment - Pole autoinkrementowane (opcjonalne)
table - Relacja pola przez ID innej tabeli
-->
<field name="ID" type="int" key="primary" increment="db" />
<field name="title" type="varchar" />
<field name="description" type="text" />
</table>
<table name="news_sources">
<field name="ID" type="int" key="primary" increment="db" />
<field name="title" type="varchar" />
<field name="description" type="text" />
<field name="link" type="varchar" />
</table>
<table name="news_contents">
<field name="ID" type="int" key="primary" increment="db" />
<field name="title" type="varchar" />
<field name="date" type="timestamp" />
<field name="author" type="int" table="news_authors" />
<field name="category" type="int" table="news_categories" />
<field name="source" type="int" table="news_sources" />
<field name="short_content" type="text" />
<field name="long_content" type="longtext" />
</table>
<table name="news_authors">
<field name="ID" type="int" key="primary" increment="db" />
<field name="user" type="int" table="users_profiles" />
</table>
<table name="news_comments">
<field name="ID" type="int" key="primary" increment="db" />
<field name="content" type="int" table="news_contents" />
<field name="date" type="timestamp" />
<field name="username" type="varchar" />
<field name="email" type="varchar" />
<field name="website" type="varchar" />
<field name="spam" type="int" />
<field name="comment" type="text" />
</table>
</tables>
</module>
podobałby by się wam jako opis modułu dla frameworka dla PHP 5. Z tego XML generowane są (jednokrotnie przez skrypt w Pythonie) wszystkie pliczki PHP (a także kod SQL potrzebny do utworzenia tabel i korzystania z nich) - warstwa obsługi danych (klasa rekordu, klasa rekordów - iterator, klasa poleceń - Insert, Update, Select, Delete, Exists, Count, dodatkowa abstrakcja przez adoDB), szablony (Smarty), zarysy logiki i zarysy handlera (w pełni sprawne akcje - ale nie mające co robić, obsługują szablony)... Czy taki framework ma szanse powodzenia, czy ten plik XML dobrze opisuje moduł frameworka?? Dodam jeszcze, że będzie dołączone <installer> które obsługuje podstawowe operacje na plikach (kopiowanie, usuwanie, tworzenie itp...), podstawę bazy danych (instalacja tabel itp..), ochronę plików (.htaccess) i ich modyfikację (wyrażenia regularne). Całe framework w założeniach będzia bardzo szybki, gdyż plik XML będzie wykorzystywany tylko do utworzenia zarysu modułu, potem nie będzie potrzebny - można go wyrzucić - zostanie sam kod PHP, obsługujący wszystko.