• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
376
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. phpWebApp and SEE­GRID Resoures phpWebApp and SEE­GRID Resoures  Dashamir Hoxha dhoxha@inima.al Dashamir Hoxha Elda Nallbani enal@inima.al Elda Nallbani Institute for Informatics and Applied Mathematics  INIMA http://www.inima.al  The phpWebApp Framework  http://phpwebapp.sourceforge.net/  The SEE­GRID Resources Web Application  http://see­grid.inima.al/gridrc/
  • 2. SEE­GRID Resources Web AppDisplays resources for each country and cluster.Displays also summary tables (reports).Admins can also edit/modify the data.Modification of data is password protected.Each country/cluster has an admin password.The admins can also change their password, and country admins can set the cluster passwords.
  • 3. Why Not Use Plain PHPMixing HTML, CSS, JS, PHP, SQL codes✗ Editing becomes difficult (code colorization, etc.)✗ The maintenance of the application becomes difficult.✗ Makes difficult the team work.✗ Increases the complexity of web applications.There are no persistent variables.Lack of modularity.
  • 4. Choosing a FrameworkPossible Tools:✗ Any template system or web application framework  (look at http://sourceforge.net/search/?type=soft)✗ ColdFusion, Smarty, etc.Why phpWebApp?✗ It is free (GNU GPL).✗ Better than the others (more flexible, powerful, etc.).✗ We know it better than the others.
  • 5. What is the phpWebApp Framework A Web Application  Framework Built with  PHP and  used for PHP apps Easy interface to DB Can be used for  eContent,  eGovernment,  eCommerce, etc.
  • 6. Features of phpWebAppSeparates layout from logic (template system)Supports modularity.Thinks of a web application like a state machine.Supports an event­based programming model.Supports web components and web objects.Supports code re­usability.
  • 7. Features of phpWebAppSimplifies the interaction of the application with the database and makes it database independent.Facilitates an iterative and incremental development approach for web applications.Supports i18n and l10n (translation to other languages) using standard GNU gettext tools.Has good debugging features.
  • 8. phpWebApp ComponentsTemplates DatabaseTemplate variables WebBox­esState Variables WebClass­es and Transitions WebObjectsEvents
  • 9. phpWebApp: TemplatesXHTML files with some additional tags and  variables: <include>, <if>, <repeat>,  <recordset>, <var>,  <!­­# comments ­­>,  <webbox>, etc. <include src="{{./}}edit/cluster_edit.html" /> <if condition="!{{admin}}">    <a class="button" href="javascript:edit()">    Edit</a>  </if>
  • 10. phpWebApp: Templates     <table>      <repeat rs="clusters">        <tr><td>{{cluster_name}}</td></tr>      </repeat>    </table>     <recordset id="country">      <query>        SELECT country_name FROM countries        WHERE country_id = {{country­>id}}      </query>    </recordset>
  • 11. phpWebApp: Template Variables Slots in template files, denoted like this:  {{var_name}} Get their value in the php code, like this:    WebApp::addVar(var_name, var_value);  The framework gets its value from a state  variable, from a global php variable or from a  php constant that has the same name as the  template variable.
  • 12. phpWebApp: State Variables Persistent variables (don t loose their value from  one page to another); similar to session variables. Keep the state of the application and its webbox­ es (which are considered as a state machine). Stored inside the web­page itself. Example:   $user_id =   WebApp::getSVar(user_list­>selected_user);
  • 13. phpWebApp: Transitions and Events A transition is the move of the application from  one state to another. It is done by the function: GoTo(page.html) An event is usually sent as well. An event can be sent like this as well:SendEvent(targetBox, eventName, arg1=val1;arg2=val2); It is handled by the php function:  targetBox::on_eventName($event_args)
  • 14. phpWebApp: DatabaseFacilitates the connection and interaction of web applications with relational databases.Is easy and convenient, but also flexible.Is database independent.Some of the classes are: Connection, Recordset, EditableRS, PagedRS, etc.
  • 15. phpWebApp: WebBox­es A WebBox is a tpl which has its own php code. It can also have its own JS, CSS, DB code, etc. It can be self­contained and independent, and  can be included easily in other pages or in other  applications. <webbox id="box_id">   <!­­ content of WebBox ­­>  </webbox>
  • 16. phpWebApp: WebBox­es The other files are: box_id.php, box_id.js, etc. box_id.php is like this:    <?php    class box_id extends WebObject    { . . . }    ?> It can have functions: onParse(), onRender() These override the functions of WebObject.
  • 17. phpWebApp: WebClass­esAn attempt to use the concept of  Class  for the templates of the framework.Several WebObject­s of the same class can be used in the same page.<WebObject class=”listbox” name=”books” rs=”books” /> Some predefined webclasses are:✗ listbox: a list of values from a recordset✗ datebox: select the date from a calendar✗ tabs: horizontal tab­like menu
  • 18. The Structure of a Web Page
  • 19. Conventions of Web ApplicationsWeb Apps should follow some conventions: Files index.php, webapp.php, browse.php, etc.  are the same for all the applications. The configuration of the application is placed in  the folder  config/  (const.Options.php,  const.Paths.php, const.Debug.php, etc.)  Templates (webboxes etc.) are usually placed in  the folder  templates/ .
  • 20. Future WorkImprovement of the docs of the framework.Improvements to the framework itself.Tools for working with the framework:✗ Emacs mode, Quanta plug­in, etc.Building reusable WebBox­es and WebClass­es; they can be even organized in higher­level frameworks for apps of a certain kind.Code generation and reverse enginnering from UML models.
  • 21. phpWebApp and SEE­GRID Resoures phpWebApp and SEE­GRID Resoures  Dashamir Hoxha dhoxha@inima.al Dashamir Hoxha Elda Nallbani enal@inima.al Elda Nallbani Institute for Informatics and Applied Mathematics  INIMA http://www.inima.al  The phpWebApp Framework  http://phpwebapp.sourceforge.net/  The SEE­GRID Resources Web Application  http://see­grid.inima.al/gridrc/