Laravel - My First Framework Companion for Developers Discovering Laravel PHP Framework

Total Page:16

File Type:pdf, Size:1020Kb

Laravel - My First Framework Companion for Developers Discovering Laravel PHP Framework Laravel - my first framework Companion for developers discovering Laravel PHP framework Maksim Surguy This book is for sale at http://leanpub.com/laravel-first-framework This version was published on 2014-09-05 This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do. ©2014 Maksim Surguy Tweet This Book! Please help Maksim Surguy by spreading the word about this book on Twitter! The suggested hashtag for this book is #laravelfirst. Find out what other people are saying about the book by clicking on this link to search for this hashtag on Twitter: https://twitter.com/search?q=#laravelfirst Also By Maksim Surguy Integrating Front end Components with Web Applications Contents Introduction ................................................. i About the author ............................................. i Prerequisites ................................................ ii Source Code ................................................ ii 1. Meeting Laravel ............................................. 1 1.1 Introducing Laravel 4 PHP framework .............................. 1 1.1.1 Laravel’s Expressive code .................................. 2 1.1.2 Laravel applications use Model-View-Controller pattern ................. 3 1.1.3 Laravel was built by a great community .......................... 3 1.2 History of Laravel framework ................................... 4 1.2.1 State of PHP frameworks world before Laravel 4 ..................... 4 1.2.2 Evolution of Laravel framework .............................. 4 1.3 Advantages of Using Laravel ................................... 5 1.3.1 Convention over configuration ............................... 5 1.3.2 Ready out of the box .................................... 6 1.3.3 Clear organization of all parts of the application ..................... 7 1.3.4 Built-in Authentication ................................... 7 1.3.5 Eloquent ORM – Laravel’s Active Record implementation ................ 9 1.4 Summary .............................................. 10 2. Getting started for Development with Laravel ............................ 12 2.1 Development overview ...................................... 12 2.2 Meeting Composer ......................................... 13 2.3 Installing Laravel .......................................... 13 2.4 Meeting Artisan: Laravel’s command line interface ....................... 14 2.5 Application structure overview .................................. 14 2.5.1 Files and folders in the root level of the application .................... 15 2.5.2 Contents of the “app” folder ................................ 16 2.5.3 Configuration settings ................................... 17 2.6 Tutorial: building a website with Laravel ............................. 17 2.6.1 The big picture – development overview ......................... 18 2.6.2 Creating a new Laravel project ............................... 19 2.6.3 Configuring application settings .............................. 19 2.6.4 Specifying endpoints (routes) of the website ....................... 21 2.6.5 Creating the database structure and the model for the data . 22 CONTENTS 2.6.6 Filling the database with data ............................... 25 2.6.7 Creating HTML and Blade views ............................. 26 2.6.7.1 Building the layout ................................ 27 2.6.7.2 Building the template for the home page .................... 28 2.6.7.3 Building the template for the services page ................... 28 2.6.7.4 Building the template for the contact page ................... 29 2.6.8 Displaying view templates from the routes ........................ 30 2.6.8.1 Connecting the home page route to the view template . 30 2.6.8.2 Connecting the services page route to the view template . 31 2.6.8.3 Connecting the contact page route to the view template . 32 2.6.9 Adding validation to the contact form ........................... 33 2.6.10 Sending HTML email with Laravel ............................ 34 2.7 Summary .............................................. 37 3. Routing .................................................. 38 3.1 Introduction to Routing in Laravel ................................ 38 3.1.1 Structure of a basic route .................................. 39 3.1.2 Types of route requests ................................... 41 3.1.3 Routing example: login form ................................ 42 3.1.3.1 Building routing structure for the login form example . 42 3.1.3.2 Showing HTML form and processing user input . 43 3.2 Passing parameters to routes .................................... 44 3.2.1 Using route parameters ................................... 46 3.2.1.1 Passing more than one parameter ........................ 46 3.2.2 Route constraints ...................................... 46 3.2.3 Making route parameters optional ............................. 47 3.3 Route Filters ............................................ 48 3.3.1 Attaching filters to routes ................................. 49 3.3.2 Creating custom filters ................................... 50 3.3.3 Adding multiple route filters ................................ 52 3.4 Grouping routes .......................................... 52 3.5 Route responses .......................................... 53 3.5.1 Showing output ....................................... 54 3.5.2 Redirects ........................................... 56 3.5.2.1 Redirecting to other URLs inside of the application . 56 3.5.2.2 Redirecting to named routes ........................... 57 3.6 Summary .............................................. 57 4. Views ................................................... 58 4.1 Introducing views and templates ................................. 58 4.1.1 Views - application’s response to a request ........................ 60 4.1.2 Templates in Laravel, Blade ................................ 61 4.2 Creating and organizing views .................................. 62 4.2.0.1 Separating view templates in folders ...................... 63 4.3 Passing data to views ........................................ 64 4.3.1 Using “View::make” arguments to pass data ........................ 66 CONTENTS 4.3.2 Using method “with” .................................... 67 4.4 Blade template engine ....................................... 69 4.4.1 Outputting and escaping data ............................... 70 4.4.1.1 Escaping Data ................................... 71 4.4.2 Using conditional statements and loops .......................... 71 4.4.2.1 Using conditional statements in the views with plain php . 72 4.4.2.2 Using conditional statements in the views with blade . 73 4.4.2.3 Using loops .................................... 74 4.5 Blade layouts ............................................ 76 4.5.1 Creating and using a layout ................................ 77 4.5.1.1 Using layouts from views ............................ 78 4.5.1.2 Using method “@yield” to specify placeholders . 78 4.5.2 Using sections ........................................ 79 4.5.3 Nesting views by using @include ............................. 82 4.6 Summary .............................................. 83 5. Understanding Controllers ....................................... 84 5.1 Introducing controllers, the “C” in MVC ............................. 84 5.2 Default Controllers: BaseController and HomeController .................... 86 5.2.1 Base controller (app/controllers/BaseController.php) ................... 87 5.2.2 Home controller (app/controllers/HomeController.php) . 88 5.3 Creating controllers ........................................ 88 5.3.1 Creating a new controller: LoginController ........................ 89 5.3.2 Creating logic for the LoginController ........................... 90 5.3.3 Defining routing for LoginController ........................... 90 5.4 Using Basic, RESTful and Resource controllers .......................... 94 5.4.1 Creating and using Basic Controllers ........................... 95 5.4.2 Creating and using RESTful Controllers .......................... 96 5.4.3 Creating and using Resource Controllers ......................... 98 5.4.3.1 Creating resource controller with artisan command . 98 5.5 Using controllers with routes ................................... 100 5.5.1 Routing to Basic Controllers ................................ 100 5.5.2 Routing to RESTful Controllers .............................. 102 5.5.3 Routing to Resource Controllers .............................. 104 5.6 Passing route parameters to controllers .............................. 105 5.6.1 Passing parameters to methods of a Basic Controller . 106 5.6.2 Passing parameters to methods of a RESTful Controller . 108 5.6.3 Passing parameters to methods of a Resource Controller . 109 5.7 Using filters with controllers ................................... 111 5.7.1 Attaching filters to a controller .............................. 112 5.7.2 Applying filters to specific methods of a controller . 113 5.7.2.1 Using the “on” keyword ............................. 113 5.7.2.2 Using the “except” and “only” keywords . 113 5.8 Summary .............................................. 114 6. Database operations ........................................... 115 CONTENTS 6.1 Introducing Database Operations in Laravel . 115 6.1.1 Configuring database settings ..............................
Recommended publications
  • Bakalářská Práce
    TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií BAKALÁŘSKÁ PRÁCE Liberec 2013 Jaroslav Jakoubě Příloha A TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Studijní program: B2646 – Informační technologie Studijní obor: 1802R007 – Informační technologie Srovnání databázových knihoven v PHP Benchmark of database libraries for PHP Bakalářská práce Autor: Jaroslav Jakoubě Vedoucí práce: Mgr. Jiří Vraný, Ph.D. V Liberci 15. 5. 2013 Prohlášení Byl(a) jsem seznámen(a) s tím, že na mou bakalářskou práci se plně vztahuje zákon č. 121/2000 Sb., o právu autorském, zejména § 60 – školní dílo. Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé bakalářské práce pro vnitřní potřebu TUL. Užiji-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tomto případě má TUL právo ode mne požadovat úhradu nákladů, které vynaložila na vytvoření díla, až do jejich skutečné výše. Bakalářskou práci jsem vypracoval(a) samostatně s použitím uvedené literatury a na základě konzultací s vedoucím bakalářské práce a konzultantem. Datum Podpis 3 Abstrakt Česká verze: Tato bakalářská práce se zabývá srovnávacím testem webových aplikací psaných v programovacím skriptovacím jazyce PHP, které využívají různé knihovny pro komunikaci s databází. Hlavní důraz při hodnocení výsledků byl kladen na rychlost odezvy při zasílání jednotlivých požadavků. V rámci řešení byly zjišťovány dostupné metodiky určené na porovnávání těchto projektů. Byl také proveden průzkum zjišťující, které frameworky jsou nejvíce používané. Klíčová slova: Testování, PHP, webové aplikace, framework, knihovny English version: This bachelor’s thesis is focused on benchmarking of the PHP frameworks and their database libraries used for creating web applications.
    [Show full text]
  • The Convergence of Modeling and Programming
    The Convergence of Modeling and Programming: Facilitating the Representation of Attributes and Associations in the Umple Model-Oriented Programming Language by Andrew Forward PhD Thesis Presented to the Faculty of Graduate and Postdoctoral Studies in partial fulfillment of the requirements for the degree Doctor of Philosophy (Computer Science1) Ottawa-Carleton Institute for Computer Science School of Information Technology and Engineering University of Ottawa Ottawa, Ontario, K1N 6N5 Canada © Andrew Forward, 2010 1 The Ph.D. program in Computer Science is a joint program with Carleton University, administered by the Ottawa Carleton Institute for Computer Science Acknowledgements A very special, and well-deserved, thank you to the following: a) Dr. Timothy C. Lethbridge. Tim has been a mentor of mine for several years, first as one of my undergraduate professors, later as my Master’s supervisor. Tim has again helped to shape my approach to software engineering, research and academics during my journey as a PhD candidate. b) The Complexity Reduction in Software Engineering (CRUISE) group and in particular Omar Badreddin and Julie Filion. Our weekly meetings, work with IBM, and the collaboration with the development of Umple were of great help. c) My family and friends. Thank you and much love Ayana; your support during this endeavor was much appreciated despite the occasional teasing about me still being in school. To my mom (and editor) Jayne, my dad Bill, my sister Allison and her husband Dennis. And, to my friends Neil, Roy, Van, Rob, Pat, and Ernesto – your help will be forever recorded in my work. Finally a special note to Ryan Lowe, a fellow Software Engineer that helped to keep my work grounded during our lengthy discussion about software development – I will miss you greatly.
    [Show full text]
  • Appendix a the Ten Commandments for Websites
    Appendix A The Ten Commandments for Websites Welcome to the appendixes! At this stage in your learning, you should have all the basic skills you require to build a high-quality website with insightful consideration given to aspects such as accessibility, search engine optimization, usability, and all the other concepts that web designers and developers think about on a daily basis. Hopefully with all the different elements covered in this book, you now have a solid understanding as to what goes into building a website (much more than code!). The main thing you should take from this book is that you don’t need to be an expert at everything but ensuring that you take the time to notice what’s out there and deciding what will best help your site are among the most important elements of the process. As you leave this book and go on to updating your website over time and perhaps learning new skills, always remember to be brave, take risks (through trial and error), and never feel that things are getting too hard. If you choose to learn skills that were only briefly mentioned in this book, like scripting, or to get involved in using content management systems and web software, go at a pace that you feel comfortable with. With that in mind, let’s go over the 10 most important messages I would personally recommend. After that, I’ll give you some useful resources like important websites for people learning to create for the Internet and handy software. Advice is something many professional designers and developers give out in spades after learning some harsh lessons from what their own bitter experiences.
    [Show full text]
  • Designpatternsphp Documentation Release 1.0
    DesignPatternsPHP Documentation Release 1.0 Dominik Liebler and contributors Jul 18, 2021 Contents 1 Patterns 3 1.1 Creational................................................3 1.1.1 Abstract Factory........................................3 1.1.2 Builder.............................................8 1.1.3 Factory Method......................................... 13 1.1.4 Pool............................................... 18 1.1.5 Prototype............................................ 21 1.1.6 Simple Factory......................................... 24 1.1.7 Singleton............................................ 26 1.1.8 Static Factory.......................................... 28 1.2 Structural................................................. 30 1.2.1 Adapter / Wrapper....................................... 31 1.2.2 Bridge.............................................. 35 1.2.3 Composite............................................ 39 1.2.4 Data Mapper.......................................... 42 1.2.5 Decorator............................................ 46 1.2.6 Dependency Injection...................................... 50 1.2.7 Facade.............................................. 53 1.2.8 Fluent Interface......................................... 56 1.2.9 Flyweight............................................ 59 1.2.10 Proxy.............................................. 62 1.2.11 Registry............................................. 66 1.3 Behavioral................................................ 69 1.3.1 Chain Of Responsibilities...................................
    [Show full text]
  • An Experimental Study of the Performance, Energy, and Programming Effort Trade-Offs of Android Persistence Frameworks
    An Experimental Study of the Performance, Energy, and Programming Effort Trade-offs of Android Persistence Frameworks Jing Pu Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Master of Science in Computer Science and Applications Eli Tilevich, Chair Barbara G. Ryder Francisco Servant July 1, 2016 Blacksburg, Virginia Keywords: Energy Efficiency; Performance; Programming Effort; Orthogonal Persistence; Android; Copyright 2016, Jing Pu An Experimental Study of the Performance, Energy, and Programming Effort Trade-offs of Android Persistence Frameworks Jing Pu (ABSTRACT) One of the fundamental building blocks of a mobile application is the ability to persist program data between different invocations. Referred to as persistence, this functionality is commonly implemented by means of persistence frameworks. When choosing a particular framework, Android|the most popular mobile platform—offers a wide variety of options to developers. Unfortunately, the energy, performance, and programming effort trade-offs of these frameworks are poorly understood, leaving the Android developer in the dark trying to select the most appropriate option for their applications. To address this problem, this thesis reports on the results of the first systematic study of six Android persistence frameworks (i.e., ActiveAndroid, greenDAO, Orm- Lite, Sugar ORM, Android SQLite, and Realm Java) in their application to and performance with popular benchmarks, such as DaCapo. Having measured and ana- lyzed the energy, performance, and programming effort trade-offs for each framework, we present a set of practical guidelines for the developer to choose between Android persistence frameworks. Our findings can also help the framework developers to optimize their products to meet the desired design objectives.
    [Show full text]
  • Web Technology Competency Object GFT Website – New Look Re-Launched
    Web Technology Competency object GFT Website – new look re-launched Technology: Java An interactive web portal developed using the Day Communiqué Content Management system to facilitate easy means of content administration and publishing by the content authors. § The project involves providing a reliable means of implementing the teaser logic, internationalization, user management from the content authors’ and end users’ perspective and easy storage and retrieval of media content. § The solution is browser based and available over the internet to all users world wide in addition to the company partners. § Technologies: Java, JSP, ESP, HTML, CSS, JQuery, MySQL Chola Serviced Appartment Technology: WordPress Chola offers first and finest apartments in Trichy with quality service. By developing the side for them, we used a trusted combination out of HTML5/CSS3/JQuery/PHP and WordPress. Technology Used: WordPress Client: Chola Serviced Apartment Technologies: Java, JSP, ESP, HTML, CSS, JQuery, MySQL Panacea– Tec Technology: Java Gluco-meter or Pressure meter readings transferred to Mobile device (Android) via bluetooth. n Panacea-Tec mobile app reads those data and sends to central database using java web service. n User can view the report, reading details using Panacea-Tec web application. n User can manage the reading, caregivers / Professional caregivers, profile and lifestyle. n Technologies: Java, Spring, Hybernate, PostGresSql, HTML, Twitter bootstarp GFT GFGFT T Website – new look re-launched Website – new look re-launched Technology: Java Technology: Java Gluco-meter or Pressure meter readings transferred to Mobile device (Android) via bluetooth. n Panacea-Tec mobile app reads those data and sends to central database using java web service.
    [Show full text]
  • Absolvování Individuální Odborné Praxe Individual Professional Practice in the Company
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by DSpace at VSB Technical University of Ostrava 1 VŠB – Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Absolvování individuální odborné praxe Individual Professional Practice in the Company 2011 Marcel Hlavina 2 Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. V Ostravě 5. května 2011 . 3 Děkuji Fakultě elektrotechniky a informatiky Vysoké školy Báňské – Technické univerzity Ostrava, že mi umožnila absolvování bakalářské praxe ve firmě. Dále děkuji firmě Webdevel s.r.o., že jsem mohl odbornou praxi vykonávat právě u této firmy. 4 Abstrakt Tato práce popisuje odbornou praxi ve firmě Webdevel s.r.o., kterou jsem vykonával na pozici Developer. V rámci této odborné praxe jsem provedl analýzu systému PictureUp pro nahrávání, prohlížení a archivaci obrázků. Dále jsem v rámci odborné praxe navrhl zlepšení systému PictureUp, převedl původní data do upgradeované verze a vytvořil administrační rozhraní a doplňkové analytické funkce. Klíčová slova: PictureUp, Kohana, informační systém, databáze, administrační rozhraní, framework, wireframe, Webdevel s.r.o. Abstract This thesis describes professional practice in the company Webdevel s.r.o., which I performed on the Developer position.Within this professional practice, I analyzed PictureUp system for recording, viewing and archiving files. Then I suggested within professional practice
    [Show full text]
  • Laravel - My First Framework Companion for Developers Discovering Laravel PHP Framework
    Laravel - my first framework Companion for developers discovering Laravel PHP framework Maksim Surguy This book is for sale at http://leanpub.com/laravel-first-framework This version was published on 2014-09-05 This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do. ©2014 Maksim Surguy Tweet This Book! Please help Maksim Surguy by spreading the word about this book on Twitter! The suggested hashtag for this book is #laravelfirst. Find out what other people are saying about the book by clicking on this link to search for this hashtag on Twitter: https://twitter.com/search?q=#laravelfirst Also By Maksim Surguy Integrating Front end Components with Web Applications Contents Introduction ................................................. i About the author ............................................. i Prerequisites ................................................ ii Source Code ................................................ ii 1. Meeting Laravel ............................................. 1 1.1 Introducing Laravel 4 PHP framework .............................. 1 1.1.1 Laravel’s Expressive code .................................. 2 1.1.2 Laravel applications use Model-View-Controller pattern ................. 3 1.1.3 Laravel was built by a great community .......................... 3 1.2 History of Laravel framework ................................... 4 1.2.1 State of PHP frameworks world before Laravel 4 ..................... 4 1.2.2 Evolution of Laravel framework .............................. 4 1.3 Advantages of Using Laravel ................................... 5 1.3.1 Convention over configuration ............................... 5 1.3.2 Ready out of the box .................................... 6 1.3.3 Clear organization of all parts of the application ....................
    [Show full text]
  • Branko Dimitrijoski
    Branko Dimitrijoski 5ta Prilepska Brigada E-mail: [email protected] CONTACT 7500 Website: http://db.con.mk Prilep, Macedonia Phone: +38978383602 SUMMARY My current primary focus is Web Development. I like to make clean, cool, creative cross-browser compatible web sites, apps, blogs and logos with a focus on user-friendly interfaces. Work both as a team-member and individually. Specialties: - Web Design and optimization, front-end Development (JavaScript, jQuery, XHTML, HTML, CSS) - Web Development (PHP, Ajax-based technologies, ASP.NET) - Software Design - .NET Framework, .NET Compact Framework (C#) - Databases (MS Access, MySql, MSSQL) - Desktop/Winforms apps EDUCATION 2009 — 2010 Univerzitet 'Sv. Kliment Ohridski' Bsc, Teacher 2006 — 2009 Univerzitet 'Sv. Kliment Ohridski' BSc, Applied Computer Sciences 2002 — 2006 DSEMU "Riste Risteski - Ricko" Prilep High School, Computers and automatics WORK EXPERIENCE GrabIT LLC January 2011 — Present Software Developer Web technologies. Branko Dimitrijoski 1 TIM Kompjuteri March 2010 — July 2010 Servicer Service and sales of computers, designing and developing web pages, implementation and maintenance of computer networks, business cards, various IT supports. CERTIFICATIONS CCNA1 Networking Basics Cisco Networking Academy INTERESTS design, new technologies, programming, body building,music LANGUAGES English (Professional working proficiency) Macedonian (Native or bilingual proficiency) SKILLS & EXPERTISE PHP .NET .NET Compact Framework HTML + CSS SQL LINQ JavaScript/jQuery/AJAX/Mootools Photoshop Corel Draw AutoCAD XML SEO JSON WordPress MVC Web Services Windows Phone Android PHP Frameworks (Kohana, CodeIgniter) Branko Dimitrijoski 2 REFERENCES Najevtino.mk January 2012 to Present Members:Branko Dimitrijoski, Valentin Gjorgjioski, Vasil Zidrovski, Gabriela Pejoska, Darko Ilieski Najevtino.mk is a price comparison engine, designed to help users to decide in their online shopping, allowing online product comparison.
    [Show full text]
  • Quantum Node Portal- Devices and Information Management
    Internship Report Master in Computer Engineering-Mobile Computing Quantum Node Portal- Devices and Information Management Sujane Natasha Lopez Leiria, September 2017 i This page was intentionally left blank ii Internship report Master in Computer Engineering-Mobile Computing Quantum Node Portal- Devices and Information Management Sujane Natasha Lopez Internship Report developed under the supervision of Professor Doctor Joao Pereira, professor at the School of Technology and Management of the Polytechnic Institute of Leiria. Leiria, September 2017 iii This page was intentionally left blank iv Acknowledgments I would like to take this opportunity to express my sincere gratitude to the people who helped me through this internship work. I sincerely thank Professor Joao Pereira for guiding me throughout my Internship Period, Professor Carlos Grilo for giving me an opportunity to do an Internship in Domatica Global Solutions. Undoubtedly the main person CEO and Founder Samuel Silva who believed in me and made this Internship possible. The Director Pedro Pina for being a good team leader and guiding my work. Besides them, a big thanks to my team members, my colleagues in Domatica Global Solutions. I am thankful to my parents for being with me and supporting me unconditionally. v This page was intentionally left blank vi Abstract An Internship in a European Company for developing a Web application-Domatica Global Solutions, Lisbon was undertaken to complete the Master’s Degree of Computer Engineering-Mobile Computing in the Polytechnic Institute of Leiria. The team Domatica deals with providing IoT solutions used for monitoring, controlling and collecting the data from the IoT gateways. The present work aims to develop a Web application for client’s side.
    [Show full text]
  • Senior Full-Stack Web Developer
    Senior Full-Stack Web Developer Technology stack: PHP, SQL, Laravel, AngularJS, VueJS, Magento, Ruby on Rails Updated on: August 20, 2021 PROFILE CANDIDATE – HRISTIJAN S. #0012 CONSULTANT’S NOTES Software Developer with 10+ years of IT experience, profound in all the phases of Software Development Life Cycle (SDLC) for designing and building complex web applications and APIs. Perform business and technology analysis, system integration engineering, custom software development, support and maintenance, re-factoring and re-engineering, unit testing and validation of services and solutions. Very good experience in agile development and design for high volume and high-quality software components and applications. Always eager to learn new technologies. TECHNICAL SKILLS: Linux Distributions: Ubuntu server Web Server: Nginx, Apache Virtualization: Docker Scripting: bash Programming Languages: PHP, Ruby, JavaScript Databases: Redis, MongoDB, MySQL, MariaDB, Sqlite Frameworks: Silex, Laravel, Bootstrap, jQuery, jQueryUI Web related: HTML5, CSS3, JSON, XML July 22, 2021 1 PROFESSIONAL EXPERIENCE (TOTAL 10+) Company 1 – Current Senior PHP Developer 10 months Planning, estimating, and setting architecture for projects. Managing a small team of few developers. Responsibilities for deploying and releasing code. Included in Business analytics for new projects. Developing and maintaining projects from scratch and supporting ongoing projects as well. Company 2 Senior PHP Developer 1 year and 2 months Plan and develop a project from scratch using Yii2 framework. Build SPA using VueJS by implementing RESTful API. Develop and maintain new features on existing projects for the automobile industry. Writing unit and integration tests using PHPUnit and Codecept. Maintain technical documentation. Maintain and bugfix existing features. Company 3 Senior PHP Developer 6 months Develop new features for high scale and high traffic project.
    [Show full text]
  • Security in Domain-Driven Design Author: Michiel Uithol
    Security in Domain-Driven Design Author: Michiel Uithol Supervisors: dr.ir. M.J. van Sinderen dr.ir. L. Ferreira Pires T. Zeeman (Sogyo) E. Mulder (Sogyo) Security in Domain Driven Design By Michiel Uithol ii Security in Domain Driven Design By Michiel Uithol Abstract Application development is a process that becomes increasingly complex depending on the intricacy of the application being developed. Development techniques and methodologies exist to manage and control the complexity of this development process. Amongst the techniques introduced to manage the complexity of the application development process is Domain-driven design (DDD). DDD prescribes a specific application of separation of concerns to the application model into a domain model and DDD-services. This Masters assignment investigates how to handle issues concerning the modelling and implementation of authorization and authentication functionality in an application developed according to the DDD principle of separating domain-related functionality from domain-independent functionality. This means an application where security functionality is located in a DDD-service. The goal of this Masters assignment is to find design options to separate security from domain-related functionality and provide guidelines for usage of these design options. To find the best design options, the problem is explored and the levels of coupling between DDD-services and the domain implementation are clarified. Criteria for the application design phase are that the design should comply with the DDD principle of separating domain-related functionality from domain-independent functionality, and that the design should provide usability and efficiency when implemented. Two prototypes use Aspect-Oriented Programming (AOP) to separate security logic into a DDD-service.
    [Show full text]