Pylons - An Overview: Rapid MVC Web Development with WSGIChes Martin
A simple overview of Pylons given at the Cambridge Python Meetup Group in January of '08. From the 0.9.6 era, it's basically outdated by now, but I wanted to archive it on Slideshare.
The complete presentation has a lot of notes. The example application discussed was QuickWiki, the standard Pylons tutorial app.
Hyves: Mobile app development with HTML5 and Javascriptnlwebperf
These are the slides of Emiels presentation about how Hyves supports multiple mobile frameworks with minimal effort by use of html5 and javascript. Topics are mobile architecture, buildsystems, testing frameworks and how Hyves uses phonegap.
A presentation about web standards and accessibility I gave to the ASIS&T group at Wayne State University.
Full Explanation:
http://wsuasist.blogspot.com/2009/03/web-standards-and-accessibility.html
Pylons - An Overview: Rapid MVC Web Development with WSGIChes Martin
A simple overview of Pylons given at the Cambridge Python Meetup Group in January of '08. From the 0.9.6 era, it's basically outdated by now, but I wanted to archive it on Slideshare.
The complete presentation has a lot of notes. The example application discussed was QuickWiki, the standard Pylons tutorial app.
Hyves: Mobile app development with HTML5 and Javascriptnlwebperf
These are the slides of Emiels presentation about how Hyves supports multiple mobile frameworks with minimal effort by use of html5 and javascript. Topics are mobile architecture, buildsystems, testing frameworks and how Hyves uses phonegap.
A presentation about web standards and accessibility I gave to the ASIS&T group at Wayne State University.
Full Explanation:
http://wsuasist.blogspot.com/2009/03/web-standards-and-accessibility.html
Best Practices in Migrating to MySQL - Part 1Ronald Bradford
This presentation to the Federal Government sector was a follow up on my successful "MySQL for the Oracle DBA Bootcamp". Best Practices in Migrating to MySQL was a focus on software applications running on Oracle and Microsoft SQL Server database products. Topic in this 4 hr workshop included:
1. Reasons to migrate to MySQL
2. Ideal application candidates
3. Migration process overview
4. Migration assistance tools
5. Specific migration issues
6. Ideals for minimizing future migrations
7. General MySQL Information
Drupal CDN integration: easier, more flexible and faster!Wim Leers
90% of the page loading time is spent on retrieving CSS, JavaScript and images. There are lots of techniques to reduce this, but using a CDN is the most effective. Currently it's expensive to integrate with a CDN (especially if you want to avoid vendor lock-in) and it's hard to serve file A from a CDN, file B from a static file server and file C from neither. In this session, you'll learn about the push-to-CDN model, which makes all of this trivial.
Session Overview
This session will explain how a CDN (Content Delivery Network) improves page loading times and how you should analyze the page loading performance while evaluating a CDN. Existing techniques for integrating a CDN with Drupal will be compared and an alternative, comprehensive solution will be presented.
Agenda
- How pages are loaded by the browser
- How a CDN improves page loading times
- Evaluating the results
- Existing Drupal CDN integration techniques
- Push-to-CDN model: pros & cons
- CDN integration module: synchronization via Drupal or highly scalable daemon
- Alternative uses: create your own CDN, massive back-up tool
Goals
- You should have a good overview of the different techniques to integrate Drupal with a CDN.
- You should have learned how you can evaluate page loading performance to know which files should be served from a CDN.
Source Code Management and Version Control Systems are tools for helping you track your file based assets (typically source code). Traditional SCM systems are centralised (CVS, Subversion, Visual Source Safe), Distributed version control systems systems provide new capabilities, work-flows, are becoming mature and are gaining mind share in the open source community.
Git is one of those Distributed Version Control Systems. It was invented by the creator of Linux (Linus Torvalds) for protecting the Linux kernel source code and coordinating the activity of hundreds of developers. This talk discusses what Distributed Version Control is, the history of Git, basic version control features and some very uncommon and amazing capabilities of git. Time permitting it will include live demonstration of the tools.
As many already know by now, 80 to 90% of the response time of a web page is dependent on the page loading performance (the fetching of the HTML and all files referenced). This is different from the page rendering performance, which is just the time it takes to generate the HTML. Drupal already tackles several issues pretty well. But there's more we can do!
You can solve several additional problems today, just by installing extra modules (such as Support file Cache), by configuring Apache (e.g. gzipped output), or by configuring some shell scripts (e.g. to optimize image files). I'll explain you how to apply these solutions.
For most Drupal sites, CDN integration and putting JS at the bottom of the page have the biggest impact. However, these two techniques are currently very hard to apply properly to Drupal: both require hacks to Drupal core. My aim is to solve both of these problems as part of my bachelor thesis. I'll explain how I expect to solve this and the impact of both issues on your site.
Content Management Selection and StrategyIvo Jansch
A presentation I did at the IMS 2009 event in London, helping organizations define a content management system strategy and helping them with the selection of CMS systems.
Quick, what do memcache, MogileFS, and Gearman have in common? They are scalable, distributed technologies, and they can also interface with PHP, your ubiquitous web development language. Digg uses all 3 (and a few more) in its quest for social news domination, and this presentation shares what we’ve learned about them and how they are best utilized with PHP.
A presentation on Patterns, Scrum, eXtreme Programming, GTD and Ferris' Four-Hour-Workweek. This was presented at ITAG (IT @ Galway) on 22-Jan-2009.
While agile techniques owe their inspiration to other disciplines,like design-patterns, they have been improved by the software industry and returned with interest to the general business community. So even if your business has nothing to do with software development or "agile" you should still find something useful in this talk.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Best Practices in Migrating to MySQL - Part 1Ronald Bradford
This presentation to the Federal Government sector was a follow up on my successful "MySQL for the Oracle DBA Bootcamp". Best Practices in Migrating to MySQL was a focus on software applications running on Oracle and Microsoft SQL Server database products. Topic in this 4 hr workshop included:
1. Reasons to migrate to MySQL
2. Ideal application candidates
3. Migration process overview
4. Migration assistance tools
5. Specific migration issues
6. Ideals for minimizing future migrations
7. General MySQL Information
Drupal CDN integration: easier, more flexible and faster!Wim Leers
90% of the page loading time is spent on retrieving CSS, JavaScript and images. There are lots of techniques to reduce this, but using a CDN is the most effective. Currently it's expensive to integrate with a CDN (especially if you want to avoid vendor lock-in) and it's hard to serve file A from a CDN, file B from a static file server and file C from neither. In this session, you'll learn about the push-to-CDN model, which makes all of this trivial.
Session Overview
This session will explain how a CDN (Content Delivery Network) improves page loading times and how you should analyze the page loading performance while evaluating a CDN. Existing techniques for integrating a CDN with Drupal will be compared and an alternative, comprehensive solution will be presented.
Agenda
- How pages are loaded by the browser
- How a CDN improves page loading times
- Evaluating the results
- Existing Drupal CDN integration techniques
- Push-to-CDN model: pros & cons
- CDN integration module: synchronization via Drupal or highly scalable daemon
- Alternative uses: create your own CDN, massive back-up tool
Goals
- You should have a good overview of the different techniques to integrate Drupal with a CDN.
- You should have learned how you can evaluate page loading performance to know which files should be served from a CDN.
Source Code Management and Version Control Systems are tools for helping you track your file based assets (typically source code). Traditional SCM systems are centralised (CVS, Subversion, Visual Source Safe), Distributed version control systems systems provide new capabilities, work-flows, are becoming mature and are gaining mind share in the open source community.
Git is one of those Distributed Version Control Systems. It was invented by the creator of Linux (Linus Torvalds) for protecting the Linux kernel source code and coordinating the activity of hundreds of developers. This talk discusses what Distributed Version Control is, the history of Git, basic version control features and some very uncommon and amazing capabilities of git. Time permitting it will include live demonstration of the tools.
As many already know by now, 80 to 90% of the response time of a web page is dependent on the page loading performance (the fetching of the HTML and all files referenced). This is different from the page rendering performance, which is just the time it takes to generate the HTML. Drupal already tackles several issues pretty well. But there's more we can do!
You can solve several additional problems today, just by installing extra modules (such as Support file Cache), by configuring Apache (e.g. gzipped output), or by configuring some shell scripts (e.g. to optimize image files). I'll explain you how to apply these solutions.
For most Drupal sites, CDN integration and putting JS at the bottom of the page have the biggest impact. However, these two techniques are currently very hard to apply properly to Drupal: both require hacks to Drupal core. My aim is to solve both of these problems as part of my bachelor thesis. I'll explain how I expect to solve this and the impact of both issues on your site.
Content Management Selection and StrategyIvo Jansch
A presentation I did at the IMS 2009 event in London, helping organizations define a content management system strategy and helping them with the selection of CMS systems.
Quick, what do memcache, MogileFS, and Gearman have in common? They are scalable, distributed technologies, and they can also interface with PHP, your ubiquitous web development language. Digg uses all 3 (and a few more) in its quest for social news domination, and this presentation shares what we’ve learned about them and how they are best utilized with PHP.
A presentation on Patterns, Scrum, eXtreme Programming, GTD and Ferris' Four-Hour-Workweek. This was presented at ITAG (IT @ Galway) on 22-Jan-2009.
While agile techniques owe their inspiration to other disciplines,like design-patterns, they have been improved by the software industry and returned with interest to the general business community. So even if your business has nothing to do with software development or "agile" you should still find something useful in this talk.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
5. CAKEPHP
WHO LOVES YA, BABY?
5
Saturday, May 23, 2009
6. CAKEPHP
INTRODUCTION
• “Simple is Good”
• Mental “point and click” in applications
• Lays out an example structure for you
• Works for you on two levels - websites and cli
• bake puts the “rapid” in RAD
6
Saturday, May 23, 2009
7. CAKEPHP
WHAT’S IN THE BOX
• Access control • Cookie Handling
• Ajax integration (Prototype) • Email Support
• HTML generation • Request Handling
• XML handling (including RSS feeds) • Javascript Integration
• Caching • Data Pagination
• Session Handling • Text Manipulation
• Security (request filtering) • Date/Time Support
• Command-line functionality (build • Inflection
scaffolding/models/etc)
7
Saturday, May 23, 2009
8. CAKEPHP
RESOURCES
• Manual at CakePHP.org (aka The Cookbook)
• The Forge - project management for CakePHP applications
• The Bakery - all things CakePHP (Tutorials/Behaviors/Case Studies/Plugins/
Helpers/Snippets)
• Extensions for other software like Komodo, Selenium, Firefox
• #cakephp on Freenode (irc)
• The Show - http://live.cakephp.org
8
Saturday, May 23, 2009
9. CAKEPHP
WHAT THE CRITICS SAY
• Wrappers around simple data types
• Claims of bad markup in HTML helpers
• It’s not “Enterprise Capable”
• Poor/confusing documentation
9
Saturday, May 23, 2009
10. CODEIGNITER
SIMPLE AND SPEEDY
10
Saturday, May 23, 2009
11. CODEIGNITER
INTRODUCTION
• Focuses on simplicity (doesn’t get in the way)
• Small, light and easy
• “Install and Go”
• Product of EllisLabs
• Originally for PHP4, changes have been made for PHP5
• Kohana is a PHP5-based fork
11
Saturday, May 23, 2009
12. CODEIGNITER
WHAT’S IN THE BOX
• Database integration • FTP Support
• Encryption • Pagination
• Form validation • Image Manipulation
• HTML rendering • Calendars
• Session handling • Input/Output Filtering
• Locale support • Trackbacks
• Templating • Text Formatting (Typography)
• XML-RPC • Custom Configuration
• Zip/Compression • Language/Locale Support
12
Saturday, May 23, 2009
13. CODEIGNITER
RESOURCES
• User Guide at the main site: CodeIgniter.com
• CodeIgniter Forums: CodeIgniter.com/forums
• Community Wiki: CodeIgniter.com/wiki
• Extension for Firefox (user guide)
• TextMate bundle
13
Saturday, May 23, 2009
14. CODEIGNITER
WHAT THE CRITICS SAY
• Difficult to have any sort of “sub applications” in your code
• Lazy loading could cause overhead as libraries grow larger
• Simple included libraries lose some advanced features
• Fewer bundled libraries (no repository like the Bakery to get
more)
14
Saturday, May 23, 2009
16. SOLAR
STRONG AND CONSISTENT
16
Saturday, May 23, 2009
17. SOLAR
INTRODUCTION
• PHP5-only from the start
• Fully-namespaced
• Focus on structure and elegance
• Uses several enterprise development patterns
Data Mapper, ServiceLocator, Query Object, Registry, Lazy Load
• Smaller user base, close-knit development community
17
Saturday, May 23, 2009
18. SOLAR
WHAT’S IN THE BOX
• Access control • Documentation Generation
• Caching • Inflection
• JSON Support • MIME Support
• Logging • SMTP
• Markdown • Database Support
• Web Services • Request Handling
• Input/Output Filtering • Locale Support
• Unit testing • Registry
18
Saturday, May 23, 2009
19. SOLAR
RESOURCES
• Main site at SolarPHP.com
• Community Blog at SolarPHP.com/blog
• Solar Wiki at SolarPHP.org
• Solar Manual at SolarPHP.org/manual
• #solarphp on the Freenode (irc)
19
Saturday, May 23, 2009
20. SOLAR
WHAT THE CRITICS SAY
• Poor documentation
• Not enough unit testing coverage
• Different sort of structure (controller/view and model)
• Slower release cycle
• Much lower adoption
20
Saturday, May 23, 2009
21. ZEND FRAMEWORK
YOU WANT IT? WE GOT IT
21
Saturday, May 23, 2009
22. ZEND FRAMEWORK
INTRODUCTION
• Standards-oriented & strong
• Targets itself towards both the casual developer and
Enterprise level users
• Defined control over source (CLA)
• Only MVC by convention, really a set of components (with
MVC tendencies)
• Large community of developers and users
22
Saturday, May 23, 2009
23. ZEND FRAMEWORK
WHAT’S IN THE BOX
• Flex integration • Authentication • Infocard support
• Exception handling • Caching • MIME Handling
• Form Validation • Code Generation • PDF
• LDAP Interface • Date Handling • REST Interface
• OpenID • Feed Parsing • Akismet Integration
• Dojo Integration • Input/Output Filtering • Popular Web Service Interfaces
• Unit Testing • Google Apps Integration • XML-RPC
• Translation • Currency formatting • Progess Bar
23
Saturday, May 23, 2009
24. ZEND FRAMEWORK
RESOURCES
• Main site at framework.zend.com*
• Manual at framework.zend.com/manual/en
• Quickstart at framework.zend.com/docs/quickstart
• Contributor’s wiki at framework.zend.com/wiki
• #zftalk on Freenode (irc)
* Framework site also includes: case studies, video tutorials and bug tracker
24
Saturday, May 23, 2009
25. ZEND FRAMEWORK
WHAT THE CRITICS SAY
• Technically* not a framework
• Tries to do it all without focusing on certain strengths
• Too much object abstraction
• Loosely coupled components can force you to make links
* Don’t send the Zend Goon Squad for me
25
Saturday, May 23, 2009
26. THE FRAMEWORKS
AT A GLANCE
Framework Components Helpers
CakePHP 7 12
CodeIgniter 25 21
Solar 34 49
Zend Framework 75 22
26
Saturday, May 23, 2009
27. A CLOSER LOOK
INSTALL & DEVELOPMENT
27
Saturday, May 23, 2009
28. INSTALLATION
CAKEPHP
• Load & Go
• Change configuration options
In /app/config:
Database connections, routing, session handling, caching options, access control
• No need to make directories, it’s all included
• Bootstrap and front controller included
28
Saturday, May 23, 2009
29. INSTALLATION
CODEIGNITER
• Dead simple
Sets up controller, helper, model, view, etc directories for you
• Update configuration for your site
• Set up database connection information
• Change any autoloads you might want
Libraries/components loaded for every connection -
useful for things like validation or certain models
29
Saturday, May 23, 2009
30. INSTALLATION
SOLAR
• Not quite as “beginner friendly” as CakePHP/CodeIgniter for
setup
• Requires some manual setup to get the ball rolling
has the “Solar System”
• Unpack the libraries in one place, make the site in another
• Create directories for site/vendor/controllers & related files
/www/htdocs/project/vendor/App
/www/htdocs/project/vendor/External
/www/htdocs/project/vendor/<Controller Name>
30
Saturday, May 23, 2009
31. INSTALLATION
SOLAR - BOOTSTRAP
<?php
session_start();
set_include_path('/www/htdocs/Solar:/www/htdocs/project:/www/htdocs/project/
Test:/www/htdocs/project/Test/External');
require_once('Solar.php');
Solar::start('/www/htdocs/Test.config.php');
$front=Solar::factory('Solar_Controller_Front');
$front->display();
Solar::stop();
?>
31
Saturday, May 23, 2009
33. INSTALLATION
ZEND FRAMEWORK
• Similar in setup to Solar
• A “Do It Yourself ” Framework
• Unpack the framework
• Application can be built wherever
• Make a boostrap
33
Saturday, May 23, 2009
39. CODEIGNITER
THE CODE
Controller - /system/application/controllers/FirstController.php
<?php
class First extends Controller {
function index(){
$this->library->load(‘database’);
$notes=$this->db->get_where(‘notes’,
array(‘note_owner’=>‘ccornutt’));
$to_view=array(
‘title’ => ’My First Controller’,
‘notes’ => $notes;
);
$this->load->view('first_page',$to_view);
}
}
?>
View - /system/application/views/first_page.php
<?php echo $title.”<br>n”;
foreach($notes as $v){
echo $v[‘note_title’]' '.$v[‘note_detail’];
}
?>
39
Saturday, May 23, 2009
40. SOLAR
THE CONFIG
DB Config - Appname.config.php
<?php
$config['Solar_Sql'][‘adapter’]=Solar_Sql_Adapter_Mysql';
$config['Solar_Sql_Adapter_Mysql'] = array(
'host' => 'localhost',
'user' => 'myuser',
'pass' => 'mypass',
'name' => 'mydb',
);
?>
Example Database Table
create table notes (
note_title VARCHAR(100),
note_detail VARCHAR(200),
note_owner VARCHAR(10)
);
40
Saturday, May 23, 2009
41. SOLAR
THE CODE
Controller - source/example/MyApp/App/First.php
<?php
class MyApp_App_First Extends Solar_App_Base {
protected $_action_default = 'index';
function actionIndex(){
$db = Solar::factory('Solar_Sql');
$bind = array(‘owner’=>‘ccornutt’);
$notes= $db->query(‘select * from notes where note_owner
= :owner’,$bind);
$this->to_view=array(
‘title’ => ’My First Controller’,
‘notes’ => $notes;
);
}
}
?>
View - source/example/MyApp/First/View/index.php
<?php echo $this->title.”<br>n”;
foreach($this->notes as $v){
echo $v[‘note_title’]' '.$v[‘note_detail’];
}
?>
41
Saturday, May 23, 2009
42. ZEND FRAMEWORK
THE CONFIG
DB Config - /application/configs/application.ini
; Uses an ini file instead of a .php
[production]
database.adapter = PDO_MYSQL
database.params.dbname = quot;mydbquot;
database.params.username = quot;myuserquot;
database.params.password = quot;mypassquot;
database.params.hostname = quot;localhostquot;
Example Database Table
create table notes (
note_title VARCHAR(100),
note_detail VARCHAR(200),
note_owner VARCHAR(10)
);
42
Saturday, May 23, 2009
43. ZEND FRAMEWORK
THE CODE
Controller - /application/controllers/indexController.php
<?php
class IndexController extends Zend_Controller_Action {
public function indexAction(){
$cfg=new Zend_Config_Ini(‘../application/
app.ini’,‘production’);
$db=Zend_Db::factory($cfg->database);
$result=$db->fetchAll(‘select * from notes’);
$this->view->to_view=array(
‘title’=>'My First Controller',
‘notes’=>$result
);
}
}
?>
View - /application/views/scripts/index/index.phtml
<?php echo $this->title.”<br>n”;
foreach($this->notes as $v){
echo $v[‘note_title’]' '.$v[‘note_detail’];
}
?>
43
Saturday, May 23, 2009
44. COMPARING THE FIRST STEPS
Steps to Steps to
Framework Total Steps
Install* “First Page”
CakePHP 2 3 5
CodeIgniter 2 2 4
Solar 5 3 8
Zend
Framework 4 2 6
* Install can include: unpacking, creating directories and making changes to configuration files.
44
Saturday, May 23, 2009
45. HOW FRIENDLY IS YOUR
FRAMEWORK?
C’MON, SHOW US THE LOVE
45
Saturday, May 23, 2009
46. CAKEPHP
WANTS TO BE YOUR FRIEND
• Installation’s as easy as one, two....well, just two
• Code-based database relationships help keep things straight
hasMany, hasOne, belongsTo, hasAndBelongsToMany
• CLI app of schemas, db dumps and migrations
• Naming conventions keep you out of trouble
46
Saturday, May 23, 2009
47. CODEIGNITER
WANTS TO BE YOUR FRIEND
• Lazy loading lets you chose when & what
• Libraries = add, hooks = change, custom core = replacing
• Keeps you safe with URI restrictions and super-global resets
• Easy upgrading (over-write)
47
Saturday, May 23, 2009
48. SOLAR
WANTS TO BE YOUR FRIEND
• Solar System (cli) gets you up and running fast
• Easy to develop on and for
• Friendly wiki manual keeps the community keep up-to-date
48
Saturday, May 23, 2009
49. ZEND FRAMEWORK
WANTS TO BE YOUR FRIEND
• It loves giving you just what you need
• Customizable everything
• Plays well with others
• It has plenty of other friends out there to help you out (over
10 million and counting)
49
Saturday, May 23, 2009
50. WANNA KNOW WHAT I
THINK?
DISCLAIMER: THESE SUGGESTIONS ARE BASED ON MY PERSONAL EXPERIENCE, ARTICLES, RANDOM PEOPLE ON THE
STREET AND A FEW OTHER BLOGS OUT THERE. THEY MIGHT HAVE BEEN MAKING IT UP FOR ALL I KNOW, BUT THAT’S A
RISK I’M WILLING TO TAKE. AFTER ALL, OPINIONS ARE LIKE...WELL, YOU KNOW. THAT BEING SAID, ENJOY THE LIST!
50
Saturday, May 23, 2009
51. WANT A ROCK SOLID, WELL DEVELOPED
FRAMEWORK THAT ISN’T GOING
ANYWHERE? GO ZEND.
• Standards for the code (CLA)
• Emphasis on strong, well-planned, well-tested code
• Large component base
• Zend as a backer (corporate)
• Strong developer community/strong user community
• Grown exponentially in just a few years
51
Saturday, May 23, 2009
52. NEW TO THE WHOLE MVC THING & WANT A
FRAMEWORK TO HOLD YOUR HAND?
CODEIGNITER’S THE WAY TO GO
• Does what you need without getting in the way
• User guide offers easy, complete documentation
• Pre-provided structure helps you get a handle on where each
part of MVC ends up
• Helpful, active community (forums/wiki)
52
Saturday, May 23, 2009
53. LOOKING FOR POWER WITHOUT A LOT OF
THE HASSLE? CAKEPHP’S YOUR GUY
• Friendly framework with helpful hints
• Pre-built structure let’s you hit the ground running
• Solid base components/tools
• Command-line rounds out feature set
53
Saturday, May 23, 2009
54. WANT SOMETHING TO APPEAL TO THE
PLANNER INSIDE THAT NEEDS BOTH POWER
& STRUCTURE? SHINE A LIGHT ON SOLAR
• Strong and standardized
• Similar interfaces found through out the code
• Uses well-practiced (enterprise) design patterns
• Command line builds project structures
54
Saturday, May 23, 2009
55. THAT’S ALL, GO HOME
JUST KIDDING, YOU CAN STAY FOR THE Q&A
55
Saturday, May 23, 2009
56. ADDITIONAL INFORMATION
Frameworks:
CakePHP - cakephp.org
CodeIgniter - codeigniter.org
Solar - solarphp.com
Zend Framework - framework.zend.com
Contact Information:
ccornutt@phpdeveloper.org
@enygma
Joind.in PHPDeveloper.org
http://joind.in/207 http://phpdeveloper.org
Atmos Energy
http://atmosenergy.com
56
Saturday, May 23, 2009