The document appears to be a series of slides in a foreign language discussing web application development frameworks and concepts. It covers topics like Symfony components, routes, controllers, models, views, and templates. Diagrams and code examples are provided to illustrate components of MVC frameworks and how they interact. The document emphasizes building applications with multiple languages and technologies.
Convert to study materialsBETA
Transform any presentation into ready-made study material¡ªselect from outputs like summaries, definitions, and practice questions.
2. A r C
S r P
A b r B rr ¨¤
Monday, June 20, 2011
3. Brescia - 24 settembre 2011
Monday, June 20, 2011
4. Why this speech?
W p ?
Agenda
A
Join the f***ing
J f*** f
cooonf
Monday, June 20, 2011
5. come utente anonimo voglio poter vedere
l'elenco delle conferenze ordinate per data
decrescente
come ua e ur voglio poter vedere l'elenco delle
presentazioni di una conferenza ordinate in data
crescente
come ua e ur voglio porer vedere il dettaglio di
una presenzatione
come ua voglio potermi registrare
come ur voglio poter aderire ad una conferenza
come ur voglio poter commentare una
conferenza
come ur voglio poter commentare una
presentazione
Monday, June 20, 2011
6. http://joinconf.heroku.com https://github.com/cirpo/joinconf
https://github.com/sandropaganoti/joinconf
only Firefox 4 and Chrome 10+
Monday, June 20, 2011
7. R R3
? Thank you Trygve Reenskaug
? Thank you Matz
? Thank you DHH
Monday, June 20, 2011
8. R b R Ar r
rack stack
middleware 1
web server ...
middleware N
View
response request
run Joinconf::Application.routes
ActionController
MiddlewareStack Model
Controller.new.process(action)
Monday, June 20, 2011
9. S f 2
? Thank you RoR
? Thank you Fabien
? Thank you Doctrine
? Thank you Spring
? Thank you Cocoa
Monday, June 20, 2011
10. S f 2 Ar r
DI View
request Kernel Event Dispatcher
response
Bundle*
Model
Monday, June 20, 2011
19. M r
? Routes to Rack and Engines
? Bundles
Monday, June 20, 2011
20. C r r
class ConferencesController < ApplicationController
def index
@conferences = Conference.all
respond_with @conferences
end
def show
@conference = Conference.find(params[:id])
end
end
Monday, June 20, 2011
21. C r r
? Function
? Object method
? Closure
Monday, June 20, 2011
22. C r r
namespace IdeatoJoinConfBundleController;
use IdeatoJoinConfBundleEntityConference;
use SymfonyBundleFrameworkBundleControllerController;
class HomepageController extends Controller {
public function indexAction()
{
$conference_repository = $this->get('doctrine.orm.entity_manager')
->getRepository('IdeatoJoinConfBundle:Conference');
$conferences = $conference_repository
->retrieveConferencesByAscendingOrder();
return $this->render
( ('IdeatoJoinConfBundle:Default:index.html.twig',
array('conferences' => $conferences));
Monday, June 20, 2011
23. M
? Doctrine 2
? POPO
? DataMapper
? ODM
Monday, June 20, 2011
26. M
class Conference < ActiveRecord::Base
validates :name, :start, :end, :users_max,
:location, :presence => true
default_scope :order => "start DESC"
has_many :sessions
has_many :attendees
has_many :comments, :as => :commentable
end
Monday, June 20, 2011
27. M
? ActiveModel
? Arel
? ActiveResource
Monday, June 20, 2011
28. V w
? Twig
? Plain PHP
? Assetic
Monday, June 20, 2011
29. {% if loop.index is not divisibleby(3) %}
View
{{ post.published_at|date("m/d/Y") }}
{{ "I like %this% and %that%."|replace({'%this
%': foo, '%that%': "bar"}) }}
{{ var.foo|default('foo item on var is not
defined') }}
{{ var is even }}
{{ var is odd }}
{% if foo.attribute is sameas(false) %}
{% for i in range(0, 3) %}
Monday, June 20, 2011
30. V w
<section id="conferences">
<h1><%= I18n.t(:conference_list)%></h1>
<%= render @conferences %>
</section>
<article class="conference">
<header>
<h1><%= conference.name %></h1>
<dl>
<!-- some stuff -->
</dl>
</header>
<p><%= conference.description %></p>
<footer>
<menu>
<li><%= link_to I18n.t(:view_the_sessions ),
conference_sessions_path(conference)%></li>
<!-- other links -->
</menu>
</footer>
</article>
Monday, June 20, 2011
31. V w
? ERb
? HTML 5
? CoffeScript
? SASS
Monday, June 20, 2011
35. S ,
f r
alessandro.cinelli@gmail.com /@cirpo
sandro.paganotti@wavegroup.it /@sandropaganotti
alberto.barrila@wavegroup.it /@albertobarrila
Monday, June 20, 2011