UpCloo Framework Documentation

Size: px
Start display at page:

Download "UpCloo Framework Documentation"

Transcription

1 UpCloo Framework Documentation Release Walter Dal Mut February 05, 2014

2

3 Contents 1 Introduction Renderers Events Services Configuration Getting Started with UpCloo Framework Your entry point Your base configuration Now the ActionController Test you business logic Integration testing Configuration Services Listeners Overload your configuration Controllers and Actions Interact with the event data Interact with the Request object Interact with the Response object Redirections ServiceManager EventManager Test your controllers The ServiceManager 17 6 Listeners 19 7 Indices and tables 21 i

4 ii

5 Contents: Contents 1

6 2 Contents

7 CHAPTER 1 Introduction UpCloo framework is based on ZF2 components and in particular: TreeRouteStack (Router EventManager ServiceManager 1.1 Renderers You have to define renderers (who render your data. The framework provides two default renderers that are: UpCloo\Renderer\Json UpCloo\Renderer\Jsonp 1.2 Events The framework flow is event driven and the execution depends in your actions. In a valid request you reach this events list begin route pre.fetch execute renderer finish The default flow can change on errors, redirections and exceptions, for example if a route is missing the 404 event is thrown and the flow is like this: begin route 404 finish You have to attach a listener on the 404 event in order to handle this error situation. 3

8 1.3 Services The ServiceManager is responsible to provide objects to your application and is widly used into the App framework in order to select the right controller and renderer. 1.4 Configuration The framework uses your configuration in order to bootstrap and run. 4 Chapter 1. Introduction

9 CHAPTER 2 Getting Started with UpCloo Framework The base folder structure is: whatever you want... We suggest something like this: - configs - src - Your - Project - Namespace - tests - Your - Project - Namespace - web - js - css - img That is similar to a standard ZF2 module. 2.1 Your entry point Into web direction you have to place your single entry point for your application the index.php file. // web/index.php $loader = require DIR. "/../../vendor/autoload.php"; $loader->add("my", DIR. /../src ; $conf = include DIR. "/../configs/app.php"; $config = new UpCloo\App\Config\ArrayProcessor(; $config->appendconfig($conf; $boot = new UpCloo\App\Boot($config; $engine = new UpCloo\App\Engine(; $app = new UpCloo\App($engine, $boot; $app->run(; 5

10 As you can see the first to line uses the composer autoloader in order to satisfy all your dependencies. The configuration is loaded through the inclusion. Subsequently we create the application and after that we run it. 2.2 Your base configuration We want to create a json response at the / address. So, we need the router and at least one controller. // configs/app.php return array( "router" => array( "routes" => array( "home" => array( "type" => "Literal", "options" => array( "route" => "/" defaults => array( controller => My\\NM\\Index, action => amethod, may_terminate => true,, "services" => array( "invokables" => array( "My\\NM\\Index" => "My\\NM\\Index", 2.3 Now the ActionController The controller class is simply a POPO definition with just the action declared. // src/my/nm/index.php namespace My\\NM; class Index public function amethod( return array( "hello" => "world" ; As you can see the method should return the value that the renderer will serialize into the response. 6 Chapter 2. Getting Started with UpCloo Framework

11 2.4 Test you business logic The goal of this structure is oriented to testing. For that reason the test section is not optional! // tests/my/nm/indextest.php namespace My\\NM; class IndexTest extends \PHPUnit_Framework_TestCase private $object; public function setup( $this->object = new Index(; public function testsimpleindexmethod( $oracledata = array( "hello" => "world" ; $this->assertequals($oracledata, $this->object->amethod(; Obviously this is just a simple action! Before run tests correctly we need to load classes and framework, for that use a bootstrap file. // tests/bootstrap.php $loader = require DIR. /../vendor/autoload.php ; //composer load the framework $loader->add("my", DIR. /../src ; //Your source $loader->add("my", DIR ; // tests folder Now run your tests: phpunit --bootstrap tests/bootstrap.php tests/ The output should be something similar to this: PHPUnit by Sebastian Bergmann.. Time: 1 seconds, Memory: 1.25Mb OK (1 tests, 1 assertions Now you can continue with more interesting things! 2.4. Test you business logic 7

12 2.5 Integration testing You can test your controller in isolation (see Controllers and Actions or you can run the whole application. If you are interested in this last thing, you have to inherits from UpClooTestWebTestCase during testing. namespace Your\NM; use UpCloo\Test\WebTestCase; class MyControllerTest extends WebTestCase public function setup( $this->appendconfig([ "router" => [... // Routes ], "services" => [... // A conf ],... ]; public function testmyaction( $response = $this->dispatch("/my-action"; //get method $this->assertequals(200, $response->getstatuscode(; //... more assert $content = $response->getcontent(; //... The dispatch method signature is: public function dispatch($url, $method = "GET", array $params = array( Possibile methods are: GET POST PUT 8 Chapter 2. Getting Started with UpCloo Framework

13 CHAPTER 3 Configuration Basically only the router section is a must. return array( "router" => array( "routes" => array( "home" => array( "type" => "literal", "options" => array( "route" => "/" "defaults" => array( "controller" => "Your\\NS\\Controller", "action" => "myaction", "may_terminate" => true ; The configuration is practically identical to ZF2 standard router configuration 3.1 Services In addition you can configure services: "services" => array( "invokables" => array( "My\\Controller\\Example" => "My\\Controller\\Example", "UpCloo\\Renderer\\Jsonp" => "UpCloo\\Renderer\\Jsonp",, "factories" => array( "example" => function(\zend\servicemanager\servicelocatorinterface $sl return "that-service";, "aliases" => array( "examplecontroller" => "My\\Controller\\Example", "renderer" = "UpCloo\\Renderer\\Jsonp" 9

14 , The configuration is the same for ZF2 services 3.2 Listeners When you need to hook your code on events you can specify through the listeners section: "listeners" => array( "404" => array( array("my\\controller\\error", "error" Any callable hook is valid "listeners" => array( "404" => array( function( // handle Overload your configuration You can pass to your Boot different configurations. The framework merge those together in order to obtain a single configuration. This thing could be useful in order to obtain the right configuration for the current environment. For example see something like this: $config = new \UpCloo\App\Config\ArrayProcessor(; $config->appendconfig(include DIR. "/../configs/app.php"; $config->appendconfig(include DIR. "/../configs/app.$env.php"; $boot = new \UpCloo\App\Boot($config;... In this way the conf loaded from app.php is overwritten by the second configuration and so on. You can load how many conf you need. 10 Chapter 3. Configuration

15 CHAPTER 4 Controllers and Actions Controllers are simply POPO object, like this: class Me public function hello( return "hello!"; Controllers and actions are mapped thanks to the TreeRouteStack as you can see in the Getting Started with UpCloo Framework section. 4.1 Interact with the event data When your action is called, the event is passed as method argument and you can interact with the RouteMatch in this way: class Me public function hello($event //Play with $event The $event object is a Zend\EventManager\Event object, in few words something like this: object(zend\eventmanager\event[31] protected name => string execute (length=7 protected target => object(zend\mvc\router\http\routematch[35] protected length => int 7 protected params => array (size=3 renderer => string UpCloo\Renderer\Jsonp (length=21 controller => string examplecontroller (length=17 action => string method (length=6 protected matchedroutename => string home (length=4 protected params => array (size=0 11

16 empty protected stoppropagation => boolean false The param contains the RouteMatch structure. 4.2 Interact with the Request object Many times you need to interact with Request (Zend\Http\PhpEnvironment\Request object. When you need to use the http request you can use UpCloo\Controller\Request trait. namespace Your\NM; use UpCloo\Controller\Request; class Me use Request; public function hello($event $request = $this->getrequest(; The framework hydrate your controller with the Request object only if you declare that you need it using the trait! 4.3 Interact with the Response object The Response object (Zend\Http\PhpEnvironment\Response follow the same of Request. namespace Your\NM; use UpCloo\Controller\Response; class Me use Response; public function hello($event $response = $this->getresponse(; 4.4 Redirections As before you have to use traits, the UpCloo\Controller\Action\Redirector to be clear 12 Chapter 4. Controllers and Actions

17 namespace Your\NM; use UpCloo\Controller\Action\Redirector; class Me use Redirector; public function hello($event $this->redirect(" 302; The second argument of redirect method is optional (302 by default and the first argument is the redirect location. The Redirector traits uses the Response trait by itself, for that reason when you use the redirector the Response traits is automatically added to your controller. 4.5 ServiceManager You can request anything from the service locator through just using the ServiceManager trait. namespace Your\NM; use UpCloo\Controller\ServiceManager; class TheHookContainer use ServiceManager; public function anhook( $aservice = $this->services(->get("a-service"; EventManager Inside an event you can attach and fire other events adding the EventManager trait: namespace Your\NM; use UpCloo\Controller\EventManager; class TheHookContainer use EventManager; 4.5. ServiceManager 13

18 public function anhook( // Attach something to an event $this->events(->attach("finish", function( //Good bye cruel world! ; // Trigger a custom event... $this->events(->trigger("my.hook.event", $this, ["name" => "a name"]; 4.7 Test your controllers You can test your controller in isolation from the entire application, you have just to prepare things that you need and inject into your controller. See an example: namespace Your\NM; use UpCloo\Controller\EventManager; class Controller use EventManager; public function myhook($event $this->events(->trigger("my.hook.start", $this;... // do something... $this->events(->trigger("my.hook.finish", $this, $data; return $data; Your tests could be something like this: namespace UpCloo\NM; use Zend\EventManager\EventManager; use UpCloo\Test\ControllerTestUtils; class ControllerTest extends \PHPUnit_Framework_TestCase use ControllerTestUtils; private $object; public function setup( // Prepare the controller $this->object = new Controller(; 14 Chapter 4. Controllers and Actions

19 $this->object->seteventmanager(new EventManager(; public function testworkingaction( $event = $this->geteventfromparams([ "param" => "hello" ]; $data = $this->object->myhook($event; // asserts on data 4.7. Test your controllers 15

20 16 Chapter 4. Controllers and Actions

21 CHAPTER 5 The ServiceManager As mentioned before, the ZF2 ServiceManger is used. You can configure your services and require for them in your controller. In your configuration: return array( "services" => array( "factories" => array( "example" => function($sl return new stdclass(; In your controller you have to require the ServiceManager trait namespace My\NM; use UpCloo\Controller\ServiceManager; class My use ServiceManager; public function hello($event $service = $this->get("example"; return $service; 17

22 18 Chapter 5. The ServiceManager

23 CHAPTER 6 Listeners Listeners are object that are used when an event is fired! namespace My\NM; class Error public function error( Of course we have to link listeners through the configuration: // configs/app.php "services" => arrray( "invokables" => array( "My\\NM\\Error" => "My\\NM\\Error",, "listeners" => array( "404" => array( array("my\\nm\\error", "error" 19

24 20 Chapter 6. Listeners

25 CHAPTER 7 Indices and tables genindex modindex search 21

Introducing Zend Framework 2. Rob Allen ~ November 2014

Introducing Zend Framework 2. Rob Allen ~ November 2014 Introducing Zend Framework 2 Rob Allen ~ November 2014 Rob Allen Consultant & ZF trainer @akrabat http://19ft.com ZF2 books What are we going to do? Look at these key ZF2 features: MVC Modules ServiceManager

More information

Advanced React JS + Redux Development

Advanced React JS + Redux Development Advanced React JS + Redux Development Course code: IJ - 27 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 astr. hours / 54 study 1 hours Sofia, 2016 Copyright 2003-2016

More information

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu GETTING STARTED WITH TYPESCRIPT Installing TypeScript Compiling the code Building a simple demo. UNDERSTANDING CLASSES Building a class Adding properties Demo of

More information

Melis Platform V2. Back-Office. Functionment of modules. Content: Date Version 2.0

Melis Platform V2. Back-Office. Functionment of modules. Content: Date Version 2.0 4, rue du Dahomey 75011 Paris, France (+33 972 386 280 Melis Platform V2 Back-Office Functionment of modules Content: This document explains how to create a module for Melis Platform's backoffice. Date

More information

Instagram PHP Documentation

Instagram PHP Documentation Instagram PHP Documentation Release 0.1.0 Marvin Osswald Feb 12, 2018 Contents 1 Overview 3 1.1 Requirements............................................... 3 1.2 Installation................................................

More information

Speck Documentation. Release Ori

Speck Documentation. Release Ori Speck Documentation Release 0.0.1 Ori June 11, 2015 Contents 1 SpeckAddress 1 1.1 Introduction............................................... 1 1.2 Module..................................................

More information

Working with Controllers

Working with Controllers Controller 1 Objectives 2 Define and describe controllers Describe how to work with action methods Explain how to invoke action methods Explain routing requests Describe URL patterns Working with Controllers

More information

SYMFONY2 WEB FRAMEWORK

SYMFONY2 WEB FRAMEWORK 1 5828 Foundations of Software Engineering Spring 2012 SYMFONY2 WEB FRAMEWORK By Mazin Hakeem Khaled Alanezi 2 Agenda Introduction What is a Framework? Why Use a Framework? What is Symfony2? Symfony2 from

More information

Watson - Events. Release 1.0.3

Watson - Events. Release 1.0.3 Watson - Events Release 1.0.3 Jan 15, 2018 Contents 1 Build Status 3 2 Installation 5 3 Testing 7 4 Contributing 9 5 Table of Contents 11 5.1 Usage................................................... 11

More information

Migrating a Zend Framework application to ZF 2. Bart McLeod

Migrating a Zend Framework application to ZF 2. Bart McLeod Migrating a Zend Framework application to ZF 2 Bart McLeod PFcongres, September 14, 2013 1 What to think of? New MVC Similar views Similarities in controllers New Zend\Form New Zend\Db Drop in Modules

More information

Introduction to Zend Framework 2 on the IBM i

Introduction to Zend Framework 2 on the IBM i Introduction to Zend Framework 2 on the IBM i Stephanie Rabbani BCD Professional Services I ve been doing web application development on the IBMi for 12 years, 7 of those have been PHP ZF2 certified architect

More information

Building Websites with Zend Expressive 3

Building Websites with Zend Expressive 3 Building Websites with Zend Expressive 3 Rob Allen, Nineteen Feet February 2018 ~ @akrabat A microframework with full stack components µframework core Router Container Template renderer Error handler Configuration

More information

Zend Framework 2 Patterns

Zend Framework 2 Patterns Zend Framework 2 Patterns Matthew Weier O'Phinney Project Lead, Zend Framework Roadmap for today Namespaces and Autoloading Exceptions Configuration Plugin systems Dispatching Inversion of Control Format

More information

Django QR Code Documentation

Django QR Code Documentation Django QR Code Documentation Release 0.3.3 Philippe Docourt Nov 12, 2017 Contents: 1 Django QR Code 1 1.1 Installation................................................ 1 1.2 Usage...................................................

More information

PHPUnit Best Practices. Sebastian Bergmann May 31st 2014

PHPUnit Best Practices. Sebastian Bergmann May 31st 2014 PHPUnit Best Practices Sebastian Bergmann May 31st 2014 PHPUnit Best Practices Sebastian Bergmann May 31st 2014 Sebastian Bergmann Driven by his passion to help developers build better software. sharing

More information

Comprehensive AngularJS Programming (5 Days)

Comprehensive AngularJS Programming (5 Days) www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop

More information

Navigator Documentation

Navigator Documentation Navigator Documentation Release 1.0.0 Simon Holywell February 18, 2016 Contents 1 Installation 3 1.1 Packagist with Composer........................................ 3 1.2 git Clone or Zip Package.........................................

More information

RedBarrel Documentation

RedBarrel Documentation RedBarrel Documentation Release 1.0 2011, Tarek Ziadé August 08, 2011 CONTENTS 1 What s RedBarrel? 3 1.1 Anatomy of a Web Service........................................ 3 1.2 The RBR DSL..............................................

More information

Your first C++ program

Your first C++ program Your first C++ program #include using namespace std; int main () cout

More information

Dogmatist. Release 1.0

Dogmatist. Release 1.0 Dogmatist Release 1.0 May 04, 2015 Contents 1 Getting started 3 1.1 Requirements............................................... 3 1.2 Installing................................................. 3 1.3

More information

micawber Documentation

micawber Documentation micawber Documentation Release 0.3.4 charles leifer Nov 29, 2017 Contents 1 examples 3 2 integration with web frameworks 5 2.1 Installation................................................ 5 2.2 Getting

More information

I hate money. Release 1.0

I hate money. Release 1.0 I hate money Release 1.0 Nov 01, 2017 Contents 1 Table of content 3 2 Indices and tables 15 i ii «I hate money» is a web application made to ease shared budget management. It keeps track of who bought

More information

termite Release 0.0.2

termite Release 0.0.2 termite Release 0.0.2 February 16, 2017 Contents 1 Features 3 2 Alternatives 5 3 Why another build tool? 7 4 Requeriments 9 5 Installation 11 5.1 Basic concepts..............................................

More information

Angular 2 and TypeScript Web Application Development

Angular 2 and TypeScript Web Application Development Angular 2 and TypeScript Web Application Development Course code: IJ -19 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 study 1 hours Sofia, 2016 Copyright 2003-2016

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel About the Tutorial Laravel is a powerful MVC PHP framework, designed for developers who need a simple and elegant toolkit to create full-featured web applications. Laravel was created by Taylor Otwell.

More information

Web Development with Zend Framework 2

Web Development with Zend Framework 2 Web Development with Zend Framework 2 Concepts, Techniques and Practical Solutions Michael Romer This book is for sale at http://leanpub.com/zendframework2-en This version was published on 2013-02-04 This

More information

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor. 3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.

More information

Basics of Java: Expressions & Statements. Nathaniel Osgood CMPT 858 February 15, 2011

Basics of Java: Expressions & Statements. Nathaniel Osgood CMPT 858 February 15, 2011 Basics of Java: Expressions & Statements Nathaniel Osgood CMPT 858 February 15, 2011 Java as a Formal Language Java supports many constructs that serve different functions Class & Interface declarations

More information

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University 9/5/6 CS Introduction to Computing II Wayne Snyder Department Boston University Today: Arrays (D and D) Methods Program structure Fields vs local variables Next time: Program structure continued: Classes

More information

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM Objectives Defining a wellformed method to check class invariants Using assert statements to check preconditions,

More information

Bernard. Release latest

Bernard. Release latest Bernard Release latest Jul 06, 2018 Contents 1 Installation 1 2 Examples 3 2.1 Producing messages........................................... 3 2.2 Queues..................................................

More information

JavaScript: the language of browser interactions. Claudia Hauff TI1506: Web and Database Technology

JavaScript: the language of browser interactions. Claudia Hauff TI1506: Web and Database Technology JavaScript: the language of browser interactions Claudia Hauff TI1506: Web and Database Technology ti1506-ewi@tudelft.nl Densest Web lecture of this course. Coding takes time. Be friendly with Codecademy

More information

Review. these are the instance variables. these are parameters to the methods

Review. these are the instance variables. these are parameters to the methods Review Design a class to simulate a bank account Implement the class Write a demo program that creates bank accounts Write junit tests for the bank account class Review What data items are associated with

More information

Tolerance Documentation

Tolerance Documentation Tolerance Documentation Release 0.1.0 sroze Oct 31, 2017 Contents 1 Introduction 3 1.1 Why?................................................... 3 1.2 Getting started..............................................

More information

Django-CSP Documentation

Django-CSP Documentation Django-CSP Documentation Release 3.0 James Socol, Mozilla September 06, 2016 Contents 1 Installing django-csp 3 2 Configuring django-csp 5 2.1 Policy Settings..............................................

More information

Payment Suite. Release

Payment Suite. Release Payment Suite Release Apr 25, 2017 Contents 1 User Documentation 3 1.1 Installation................................................ 3 1.2 Configuration............................................... 4

More information

CMSilex Documentation

CMSilex Documentation CMSilex Documentation Release 0.1 Leigh Murray December 01, 2016 Contents 1 Introduction 3 2 Usage 5 2.1 Installation................................................ 5 2.2 Bootstrap.................................................

More information

Archer Documentation. Release 0.1. Praekelt Dev

Archer Documentation. Release 0.1. Praekelt Dev Archer Documentation Release 0.1 Praekelt Dev February 12, 2014 Contents 1 User Service 3 1.1 Installation................................................ 3 1.2 API....................................................

More information

CS201 - Assignment 3, Part 1 Due: Friday February 28, at the beginning of class

CS201 - Assignment 3, Part 1 Due: Friday February 28, at the beginning of class CS201 - Assignment 3, Part 1 Due: Friday February 28, at the beginning of class One of the keys to writing good code is testing your code. This assignment is going to introduce you and get you setup to

More information

WhaPy Documentation. Release Efraim Rodrigues

WhaPy Documentation. Release Efraim Rodrigues WhaPy Documentation Release 0.0.1 Efraim Rodrigues Feb 19, 2018 Contents: 1 API Reference 1 1.1 WhaPy.................................................. 1 1.2 Event Reference.............................................

More information

CS159. Nathan Sprague. September 30, 2015

CS159. Nathan Sprague. September 30, 2015 CS159 Nathan Sprague September 30, 2015 Testing Happens at Multiple Levels Unit Testing - Test individual classes in isolation. Focus is on making sure that each method works according to specification.

More information

Saikat Banerjee Page 1

Saikat Banerjee Page 1 1. What s the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in the cases, where a lot of manipulation is done to the text. Strings are immutable, so each

More information

pyramid_assetmutator Documentation

pyramid_assetmutator Documentation pyramid_assetmutator Documentation Release 1.0b1 Seth Davis February 22, 2017 Contents 1 Overview 1 2 Installation 3 3 Setup 5 4 Usage 7 5 Mutators 11 6 Settings 13 7 Asset Concatenation (a.k.a Asset

More information

Scaffold Documentation

Scaffold Documentation Scaffold Documentation Release 1.1 Alin Eugen Deac Oct 29, 2017 Contents 1 Contents 3 1.1 How to Install.............................................. 3 1.2 Install Scaffolds.............................................

More information

Dependency Injection Container Documentation

Dependency Injection Container Documentation Dependency Injection Container Documentation Release v1.0.0 Filipe Silva Dec 08, 2017 Contents 1 Getting started 3 1.1 Introduction...............................................

More information

Alarm Counter. A Ceilometer OpenStack Application

Alarm Counter. A Ceilometer OpenStack Application Alarm Counter A Ceilometer OpenStack Application Tejas Tovinkere Pattabhi UTD VOLUNTEER AT AWARD SOLUTIONS Summer 2015 Contents Alarm Counter 1 Introduction...2 2 Pre-Requisites...2 2.1 Server Creation...

More information

Lyna Framework Documentation

Lyna Framework Documentation Lyna Framework Documentation Release 0.1 Nicolas Bounoughaz June 12, 2015 Contents 1 Features 3 2 Contribute 5 3 Support 7 4 License 9 5 Get started 11 5.1 Installation................................................

More information

API Knowledge Coding Guide Version 7.2

API Knowledge Coding Guide Version 7.2 API Knowledge Coding Guide Version 7.2 You will be presented with documentation blocks extracted from API reference documentation (Javadocs and the like). For each block, you will be also presented with

More information

Behat Drupal Integration Documentation

Behat Drupal Integration Documentation Behat Drupal Integration Documentation Release 1.1 Brendan MacDonald Jul 19, 2017 Contents 1 Introduction 3 2 System Requirements 5 3 Installation 7 4 Adding it to an existing project 9 5 Initial setup

More information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the

More information

Lab 1 - Introduction to Angular

Lab 1 - Introduction to Angular Lab 1 - Introduction to Angular In this lab we will build a Hello World style Angular component. The key focus is to learn how to install all the required code and use them from the browser. We wont get

More information

MATE: A Flex Framework Extreme Makeover

MATE: A Flex Framework Extreme Makeover MATE: A Flex Framework Extreme Makeover Our Agenda Introductions What Is MATE? Why Use MATE? Take A Look At The Original App - ClipSafe It s Time for an Extreme Makeover! Extending MATE Summary Introductions

More information

Connexion Documentation

Connexion Documentation Connexion Documentation Release 0.5 Zalando SE Nov 16, 2017 Contents 1 Quickstart 3 1.1 Prerequisites............................................... 3 1.2 Installing It................................................

More information

Test-Driven Development JUnit

Test-Driven Development JUnit Test-Driven Development JUnit Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level Wednesday, January 18, 2017 1 Simulator submission

More information

Dealing with Legacy Code. Sebastian Bergmann October 28 th 2014

Dealing with Legacy Code. Sebastian Bergmann October 28 th 2014 Dealing with Legacy Code Sebastian Bergmann October 28 th 2014 Sebastian Bergmann Driven by his passion to help developers build better software. sharing experience Legacy Code "Legacy code is code that

More information

B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA

B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE

More information

CIS Intro to Programming in C#

CIS Intro to Programming in C# OOP: Creating Classes and Using a Business Tier McGraw-Hill 2010 The McGraw-Hill Companies, Inc. All rights reserved. Understand how a three-tier application separates the user interface from the business

More information

Welcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 1/9/ Review. Here s a simple C++ program:

Welcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 1/9/ Review. Here s a simple C++ program: Welcome Back CSCI 262 Data Structures 2 - Review What you learned in CSCI 261 (or equivalent): Variables Types Arrays Expressions Conditionals Branches & Loops Functions Recursion Classes & Objects Streams

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

Interactive Web Application

Interactive Web Application Interactive Web Application This lesson builds on previous lessons With this lesson we will be picking up right where we left off from our Node.js Hosting lesson. The presentation can be found at http://rockymountaincoding.org.

More information

Hello everyone! Page 1. Your folder should look like this. To start with Run your XAMPP app and start your Apache and MySQL.

Hello everyone! Page 1. Your folder should look like this. To start with Run your XAMPP app and start your Apache and MySQL. Hello everyone! Welcome to our PHP + MySQL (Easy to learn) E.T.L. free online course Hope you have installed your XAMPP? And you have created your forms inside the studio file in the htdocs folder using

More information

CodeCeption. introduction and use in Yii. Yii London Meetup - 15 April 2014 by Matteo Peach Pescarin

CodeCeption. introduction and use in Yii. Yii London Meetup - 15 April 2014 by Matteo Peach Pescarin CodeCeption introduction and use in Yii Yii London Meetup - 15 April 2014 by Matteo Peach Pescarin - @ilpeach The current situation (Potentially) fiddly system configuration unless the framework ships

More information

Django PAM Documentation

Django PAM Documentation Django PAM Documentation Release 1.4.1 Carl J. Nobile Aug 01, 2018 Contents 1 Contents 3 1.1 Installation................................................ 3 1.2 Configuration...............................................

More information

nucleon Documentation

nucleon Documentation nucleon Documentation Release 0.1 Daniel Pope December 23, 2014 Contents 1 Getting started with Nucleon 3 1.1 An example application......................................... 3 1.2 Our first database app..........................................

More information

A Sweet Test Suite. DrupalCon NA A Sweet Test Suite

A Sweet Test Suite. DrupalCon NA A Sweet Test Suite A Sweet Test Suite A Sweet Test Suite Dan Gurin Twitter @dgurin dangur @ D.O, GitHub, LinkedIn... Organizer @ Drupal Camp Asheville Engineer @CivicActions Test Driven Development Test Driven Development

More information

We are assuming you have node installed!

We are assuming you have node installed! Node.js Hosting We are assuming you have node installed! This lesson assumes you've installed and are a bit familiar with JavaScript and node.js. If you do not have node, you can download and install it

More information

Do a domain analysis by hand-drawing three or more pictures of what the world program will look like at different stages when it is running.

Do a domain analysis by hand-drawing three or more pictures of what the world program will look like at different stages when it is running. How to Design Worlds The How to Design Worlds process provides guidance for designing interactive world programs using big-bang. While some elements of the process are tailored to big-bang, the process

More information

redis-lua Documentation

redis-lua Documentation redis-lua Documentation Release 2.0.8 Julien Kauffmann October 12, 2016 Contents 1 Quick start 3 1.1 Step-by-step analysis........................................... 3 2 What s the magic at play here?

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Class, Variable, Constructor, Object, Method Questions

Class, Variable, Constructor, Object, Method Questions Class, Variable, Constructor, Object, Method Questions http://www.wideskills.com/java-interview-questions/java-classes-andobjects-interview-questions https://www.careerride.com/java-objects-classes-methods.aspx

More information

Melis Platform V2. Front-Office. Create a website. Content: Date Version 2.0

Melis Platform V2. Front-Office. Create a website. Content: Date Version 2.0 4, rue du Dahomey 75011 Paris, France (+33) 972 386 280 Melis Platform V2 Front-Office Create a website Content: This document explains how to create a website using Melis Platform V2. It will go through

More information

EL-USB-RT API Guide V1.0

EL-USB-RT API Guide V1.0 EL-USB-RT API Guide V1.0 Contents 1 Introduction 2 C++ Sample Dialog Application 3 C++ Sample Observer Pattern Application 4 C# Sample Application 4.1 Capturing USB Device Connect \ Disconnect Events 5

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

C# Programming for Developers Course Labs Contents

C# Programming for Developers Course Labs Contents C# Programming for Developers Course Labs Contents C# Programming for Developers...1 Course Labs Contents...1 Introduction to C#...3 Aims...3 Your First C# Program...3 C# The Basics...5 The Aims...5 Declaring

More information

IXP Manager Workshop. Grapher - Anatomy of a Request. Barry O Donovan - INEX 28th Euro-IX Forum April 24th 2016 Luxembourg

IXP Manager Workshop. Grapher - Anatomy of a Request. Barry O Donovan - INEX 28th Euro-IX Forum April 24th 2016 Luxembourg IXP Manager Workshop 28th Euro-IX Forum April 24th 2016 Luxembourg Grapher - Anatomy of a Request Barry O Donovan - INEX barry.odonovan@inex.ie Prologue This slide deck was originally presented by Barry

More information

Customizing the WebSphere Portal login and logout commands

Customizing the WebSphere Portal login and logout commands Customizing the WebSphere Portal login and logout commands Abstract This technical note provides detailed information about how the WebSphere Portal login or logout flow can be extended or customized by

More information

Object-Oriented Design Lecture 21 CSU 370 Fall 2008 (Pucella) Tuesday, Dec 9, 2007

Object-Oriented Design Lecture 21 CSU 370 Fall 2008 (Pucella) Tuesday, Dec 9, 2007 Object-Oriented Design Lecture 21 CSU 370 Fall 2008 (Pucella) Tuesday, Dec 9, 2007 Odds and Ends In this lecture, I want to touch on a number of topics that are intrinsically useful, but that we do not

More information

Welcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 8/19/ Review. Here s a simple C++ program:

Welcome Back. CSCI 262 Data Structures. Hello, Let s Review. Hello, Let s Review. How to Review 8/19/ Review. Here s a simple C++ program: Welcome Back CSCI 262 Data Structures 2 - Review What you learned in CSCI 261 (or equivalent): Variables Types Arrays Expressions Conditionals Branches & Loops Functions Recursion Classes & Objects Streams

More information

Plone Performance Testing Documentation

Plone Performance Testing Documentation Plone Performance Testing Documentation Release 1.0 Timo Stollenwerk January 21, 2015 Contents 1 Getting Started with jmeter 1 1.1 Introduction............................................... 1 1.2 Step

More information

Subclassing for ADTs Implementation

Subclassing for ADTs Implementation Object-Oriented Design Lecture 8 CS 3500 Fall 2009 (Pucella) Tuesday, Oct 6, 2009 Subclassing for ADTs Implementation An interesting use of subclassing is to implement some forms of ADTs more cleanly,

More information

More About Objects and Methods

More About Objects and Methods More About Objects and Methods Chapter 5 Chapter 5 1 Auto-Boxing and Unboxing and Wrapper Classes Many Java library methods work with class objects only Do not accept primitives Use wrapper classes instead!

More information

Newscoop Plugin Development Documentation Release 4.2.1

Newscoop Plugin Development Documentation Release 4.2.1 Newscoop Plugin Development Documentation Release 4.2.1 SW February 04, 2016 Contents 1 Plugin Design 3 1.1 Managing the Plugin Lifecycle..................................... 3 1.2 Creating Database Entities........................................

More information

Interface evolution via public defender methods

Interface evolution via public defender methods Interface evolution via public defender methods Brian Goetz, May 2010 1. Problem statement Once published, it is impossible to add methods to an interface without breaking existing implementations. The

More information

moxie-js-client documentation

moxie-js-client documentation moxie-js-client documentation Release 1.0 Mobile Oxford team, IT Services, University of Oxford December 16, 2016 Contents 1 Developer 1 1.1 Overview................................................. 1

More information

Traits CLI Documentation

Traits CLI Documentation Traits CLI Documentation Release 0.1.0 Takafumi Arakaki March 22, 2013 CONTENTS 1 Links 3 2 Installation 5 3 Dependencies 7 4 Sample 9 5 CLI base class 11 6 Utility functions 19 7 Change log 21 7.1 v0.1....................................................

More information

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value

Paytm Programming Sample paper: 1) A copy constructor is called. a. when an object is returned by value Paytm Programming Sample paper: 1) A copy constructor is called a. when an object is returned by value b. when an object is passed by value as an argument c. when compiler generates a temporary object

More information

3.1 Class Declaration

3.1 Class Declaration Chapter 3 Classes and Objects OBJECTIVES To be able to declare classes To understand object references To understand the mechanism of parameter passing To be able to use static member and instance member

More information

Type Hierarchy. Comp-303 : Programming Techniques Lecture 9. Alexandre Denault Computer Science McGill University Winter 2004

Type Hierarchy. Comp-303 : Programming Techniques Lecture 9. Alexandre Denault Computer Science McGill University Winter 2004 Type Hierarchy Comp-303 : Programming Techniques Lecture 9 Alexandre Denault Computer Science McGill University Winter 2004 February 16, 2004 Lecture 9 Comp 303 : Programming Techniques Page 1 Last lecture...

More information

Comp 249 Programming Methodology Chapter 9 Exception Handling

Comp 249 Programming Methodology Chapter 9 Exception Handling Comp 249 Programming Methodology Chapter 9 Exception Handling Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal, Canada These slides has been extracted,

More information

Javadocing in Netbeans (rev )

Javadocing in Netbeans (rev ) Javadocing in Netbeans (rev. 2011-05-20) This note describes how to embed HTML-style graphics within your Javadocs, if you are using Netbeans. Additionally, I provide a few hints for package level and

More information

This page is DEPRECATED, please refer to the new source

This page is DEPRECATED, please refer to the new source Convention Plugin This page is DEPRECATED, please refer to the new source http://struts.apache.org/plugins/convention/ 1 Introduction 2 Setup 3 Converting a Codebehind based application to Convention 4

More information

CakePHP-Upload Documentation

CakePHP-Upload Documentation CakePHP-Upload Documentation Release 3.0.0 Jose Diaz-Gonzalez March 18, 2016 Contents 1 Introduction 3 1.1 Upload Plugin 3.0............................................ 3 1.2 Background................................................

More information

Bambu API Documentation

Bambu API Documentation Bambu API Documentation Release 2.0.1 Steadman Sep 27, 2017 Contents 1 About Bambu API 3 2 About Bambu Tools 2.0 5 3 Installation 7 4 Basic usage 9 5 Questions or suggestions? 11 6 Contents 13 6.1 Defining

More information

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question) CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers

More information

Node.js. Node.js Overview. CS144: Web Applications

Node.js. Node.js Overview. CS144: Web Applications Node.js Node.js Overview JavaScript runtime environment based on Chrome V8 JavaScript engine Allows JavaScript to run on any computer JavaScript everywhere! On browsers and servers! Intended to run directly

More information

OFFLINE MODE OF ANDROID

OFFLINE MODE OF ANDROID OFFLINE MODE OF ANDROID APPS @Ajit5ingh ABOUT ME new Presenter( Ajit Singh, github.com/ajitsing, www.singhajit.com, @Ajit5ingh ) AGENDA Why offline mode? What it takes to build an offline mode Architecture

More information

UI Patterns Documentation

UI Patterns Documentation UI Patterns Documentation Release 1.x Nuvole Web Nov 19, 2017 Table of Contents 1 Project overview 3 1.1 Try it out................................................. 3 i ii The UI Patterns module allows

More information

"Charting the Course... Comprehensive Angular. Course Summary

Charting the Course... Comprehensive Angular. Course Summary Description Course Summary Angular is a powerful client-side JavaScript framework from Google that supports simple, maintainable, responsive, and modular applications. It uses modern web platform capabilities

More information

bzz Documentation Release Rafael Floriano and Bernardo Heynemann

bzz Documentation Release Rafael Floriano and Bernardo Heynemann bzz Documentation Release 0.1.0 Rafael Floriano and Bernardo Heynemann Nov 15, 2017 Contents 1 Getting Started 3 2 Flattening routes 5 3 Indices and tables 7 3.1 Model Hive................................................

More information

Assertions, pre/postconditions

Assertions, pre/postconditions Programming as a contract Assertions, pre/postconditions Assertions: Section 4.2 in Savitch (p. 239) Specifying what each method does q Specify it in a comment before method's header Precondition q What

More information