This document provides an overview of CodeIgniter and the Model-View-Controller (MVC) framework. It discusses the key features supported by CodeIgniter including database classes, validation, security filtering, and more. It explains the basic MVC structure with models representing data, views representing presented information, and controllers serving as intermediaries. The document demonstrates how CodeIgniter handles URLs in a segment-based approach and describes the roles of controllers, views, models, helpers, libraries, and hooks within a CodeIgniter application. Code examples are provided to illustrate how each component works.
Dependency injection, or DI, is a design pattern in which a class requests dependencies from external sources rather than creating them.
Dependency Injection is known to be a programming paradigm.
It enables the creation of dependent objects outside of a class while providing those very objects to a class in numerous ways.
OOPS Concepts, Java Evolution, Class Object basic, Class Object Constructor overloading, Inheritance, Array and String, Final Abstract class and interfaces, Exceptions, Streams, GUI Applications, Applet Programming, Network Programming and Java Sockets, Multi Threading
Dependency injection, or DI, is a design pattern in which a class requests dependencies from external sources rather than creating them.
Dependency Injection is known to be a programming paradigm.
It enables the creation of dependent objects outside of a class while providing those very objects to a class in numerous ways.
OOPS Concepts, Java Evolution, Class Object basic, Class Object Constructor overloading, Inheritance, Array and String, Final Abstract class and interfaces, Exceptions, Streams, GUI Applications, Applet Programming, Network Programming and Java Sockets, Multi Threading
JavaScript - An Introduction is a beginner's guide to JavaScript. It starts with very basic level and goes to intermediate level. You'll be introduced with every language constructs, Event handling, Form handling and AJAX which is supported by JavaScript with XMLHttpRequest object. This XHR object is discussed in enough detail so that you can understand how the underlying AJAX functionality works in jQuery. At the end it discusses advance concepts and library build on/around JavaScript.
JavaScript Events:
HTML events are "things" that happen to HTML elements. When JavaScript is used in HTML pages, JavaScript can "react" on these events.
What can JavaScript Do?
Event handlers can be used to handle, and verify, user input, user actions, and browser actions:
Things that should be done every time a page loads
Things that should be done when the page is closed
Action that should be performed when a user clicks a button
Content that should be verified when a user inputs data
Java Strings Tutorial | String Manipulation in Java | Java Tutorial For Begin...Edureka!
**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****
This Edureka tutorial on “Java Strings” will talk about one of the most important classes of Java i.e String class. It will also talk about the various methods and interfaces implemented by the String class. Through this tutorial you will learn the following topics:
Java Strings
String Pool
Creating a String
String Methods
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Edge Side Include Injection: Abusing Caching Servers into SSRF and Transparen...Priyanka Aash
When caching servers and load balancers became an integral part of the Internet's infrastructure, vendors introduced what is called "Edge Side Includes" (ESI), a technology allowing malleability in caching systems. This legacy technology, still implemented in nearly all popular HTTP surrogates (caching/load balancing services), is dangerous by design and brings a yet unexplored vector for web-based attacks.
The ESI language consists of a small set of instructions represented by XML tags, served by the backend application server, which are processed on the Edge servers (load balancers, reverse proxies). Due to the upstream-trusting nature of Edge servers, the ESI engine tasked to parse and execute these instructions are not able to distinguish between ESI instructions legitimately provided by the application server, and malicious instructions injected by a malicious party. Through our research, we explored the risks that may be encountered through ESI injection: We identified that ESI can be used to perform SSRF, bypass reflected XSS filters (Chrome), and silently extract cookies. Because this attack vector leverages flaws on Edge servers and not on the client-side, the ESI engine can be reliably exploited to steal all cookies, including those protected by the HttpOnly mitigation flag, allowing JavaScript-less session hijacking.
Identified affected vendors include Akamai, Varnish Cache, Squid Proxy, Fastly, IBM WebSphere, Oracle WebLogic, F5, and countless language-specific solutions (NodeJS, Ruby, etc.). This presentation will start by defining ESI and visiting typical infrastructures leveraging this model. We will then delve into to the good stuff; identification and exploitation of popular ESI engines, and mitigation recommendations.
Slide ini merupakan tutorial dasar dari penggunaan javaScript. Bagaimana javascript berjalan dan penggunaannya, javaScript statement, javaScript variable, javaScript looping, dan javaScript operator.
JavaScript - An Introduction is a beginner's guide to JavaScript. It starts with very basic level and goes to intermediate level. You'll be introduced with every language constructs, Event handling, Form handling and AJAX which is supported by JavaScript with XMLHttpRequest object. This XHR object is discussed in enough detail so that you can understand how the underlying AJAX functionality works in jQuery. At the end it discusses advance concepts and library build on/around JavaScript.
JavaScript Events:
HTML events are "things" that happen to HTML elements. When JavaScript is used in HTML pages, JavaScript can "react" on these events.
What can JavaScript Do?
Event handlers can be used to handle, and verify, user input, user actions, and browser actions:
Things that should be done every time a page loads
Things that should be done when the page is closed
Action that should be performed when a user clicks a button
Content that should be verified when a user inputs data
Java Strings Tutorial | String Manipulation in Java | Java Tutorial For Begin...Edureka!
**** Java Certification Training: https://www.edureka.co/java-j2ee-soa-training ****
This Edureka tutorial on “Java Strings” will talk about one of the most important classes of Java i.e String class. It will also talk about the various methods and interfaces implemented by the String class. Through this tutorial you will learn the following topics:
Java Strings
String Pool
Creating a String
String Methods
Check out our Java Tutorial blog series: https://goo.gl/osrGrS
Check out our complete Youtube playlist here: https://goo.gl/gMFLx3
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Edge Side Include Injection: Abusing Caching Servers into SSRF and Transparen...Priyanka Aash
When caching servers and load balancers became an integral part of the Internet's infrastructure, vendors introduced what is called "Edge Side Includes" (ESI), a technology allowing malleability in caching systems. This legacy technology, still implemented in nearly all popular HTTP surrogates (caching/load balancing services), is dangerous by design and brings a yet unexplored vector for web-based attacks.
The ESI language consists of a small set of instructions represented by XML tags, served by the backend application server, which are processed on the Edge servers (load balancers, reverse proxies). Due to the upstream-trusting nature of Edge servers, the ESI engine tasked to parse and execute these instructions are not able to distinguish between ESI instructions legitimately provided by the application server, and malicious instructions injected by a malicious party. Through our research, we explored the risks that may be encountered through ESI injection: We identified that ESI can be used to perform SSRF, bypass reflected XSS filters (Chrome), and silently extract cookies. Because this attack vector leverages flaws on Edge servers and not on the client-side, the ESI engine can be reliably exploited to steal all cookies, including those protected by the HttpOnly mitigation flag, allowing JavaScript-less session hijacking.
Identified affected vendors include Akamai, Varnish Cache, Squid Proxy, Fastly, IBM WebSphere, Oracle WebLogic, F5, and countless language-specific solutions (NodeJS, Ruby, etc.). This presentation will start by defining ESI and visiting typical infrastructures leveraging this model. We will then delve into to the good stuff; identification and exploitation of popular ESI engines, and mitigation recommendations.
Slide ini merupakan tutorial dasar dari penggunaan javaScript. Bagaimana javascript berjalan dan penggunaannya, javaScript statement, javaScript variable, javaScript looping, dan javaScript operator.
Get things done with Yii - quickly build webapplicationsGiuliano Iacobelli
Lesson teached at Università di Roma Tre - Software Engineering course.
Web is plenty of amazing tools used daily by millions of people. A good idea can turn to be a highly profitable business if well executed. Yii framework is an ideal tool to build in short time an MVP of your product to start as soon as possible to find your market fit. Here follows some infos about the framework and steps on how to build a simple blog over Yii.
How to create MVC
MVC application folder structure
About View bags
View bags vs View data Vs Temp Data
Layout Configuration
MVC application sample using Entity framework-EF
OOP Concept.
OroCRM Partner Technical Training: September 2015Oro Inc.
OroCRM Partner Technical Training
September 2015
Schedule:
Day 1 - Monday 9/14
Define your Entities
--Environment and Project Setup
--Packages Management
--Entities and DB Schema Management
--Entity CRUD Implementation
Day 2 - Tuesday 9/15
Security and Productivity
--ACL
--Entity Activities
--System Configuration
Day 3 - Wednesday 9/16
User Interface
--Layouts and Templates
--CSS and JavaScript
--Widgets
--Navigation
--Localizations
Day 4 - Thursday 9/17
Integrate your Solution
--Job Queue
--Import and Export
--Integrations
--Automated Processes
--WEB API
Day 5 - Friday 9/18
Work with Data
--Workflow
--Reports
--Analytics and Marketing
--Tests
Presentation of codeigniter to understand the framework and easy to understand for beginners.Codeigniter is php framework easy to learn and useful for start into web devlopment.
In this presentation, the most important object oriented topics and features of C# is discussed. The session was presented in 42nd Session of CodeWeekend and it is the 3rd week of C# + CS50 Series of Training.
Csharp expressions, types, variables, control statements of both selection and loops, methods, namespaces, classes, inheritance and polymorphism topics are included in this presentation.
Launch Your Local Blog & Social Media IntegrationJamshid Hashimi
This presentation covers topics on how to use Bitnami WordPress Stack to launch a local blog in a PC, Introduction to WAMP, How to select a domain for a blog/website, Integrating blog with social media and 2013 WordPress statistics.
This presentation covers topics on how to manage Menus, details of what is Widgets, how to invite for feedback, creating polls, how to build a strong and visible reader community and using site statistics to understand your readers in WordPress.
This presentation includes writing and managing pages, creating and managing links, working with link lists (Blog rolls), creating categories and managing users in WordPress
In this presentation the following topics are covered: How to use different formats in WordPress, Configuring WordPress, Selecting a template, Creating privacy, discussion and permalink settings and also deciding on a content strategy along with how to choose concise keywords for a blog.
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!
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.
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.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
3. Supported Feaures
• Model-View-Controller Based System
• Extremely Light Weight
• Full Featured database classes with support for several platforms.
• Active Record Database Support
• Form and Data Validation
• Security and XSS Filtering
• Session Management
• Email Sending Class. Supports Attachments, HTML/Text email,
multiple protocols (sendmail, SMTP, and Mail) and more.
• Image Manipulation Library (cropping, resizing, rotating, etc.).
Supports GD, ImageMagick, and NetPBM
4. Supported Feaures
• File Uploading Class
• FTP Class
• Localization
• Pagination
• Data Encryption
• Benchmarking
• Full Page Caching
• Error Logging
• Application Profiling
• Calendaring Class
• User Agent Class
5. Supported Feaures
• Zip Encoding Class
• Template Engine Class
• Trackback Class
• XML-RPC Library
• Unit Testing Class
• Search-engine Friendly URLs
• Flexible URI Routing
• Support for Hooks and Class Extensions
• Large library of "helper" functions
6. Understanding MVC
• CodeIgniter is based on the Model-View-
Controller development pattern. MVC is a
software approach that separates application
logic from presentation.
– The Model represents your data structures.
– The View is the information that is being presented to
a user.
– The Controller serves as an intermediary between the
Model, the View, and any other resources needed to
process the HTTP request and generate a web page.
8. CodeIgniter URLS
• By default, URLs in CodeIgniter are designed
to be search-engine and human friendly.
• CodeIgniter uses a segment-based approach.
example.com/news/article/my_article
9. CodeIgniter URLS
• The first segment represents the controller class
that should be invoked.
• The second segment represents the class
function, or method, that should be called.
• The third, and any additional segments,
represent the ID and any variables that will be
passed to the controller.
example.com/class/function/ID
12. CodeIgniter Controllers
• A Controller is simply a class file that is named
in a way that can be associated with a URI.
• When a controller's name matches the first
segment of a URI, it will be loaded.
<?php
class Blog extends CI_Controller {
public function index()
{
echo 'Hello World!';
}
}
?>
13. CodeIgniter Controllers
• The second segment of the URI determines
which function in the controller gets called.
<?php
class Blog extends CI_Controller {
public function index()
{
echo 'Hello World!';
}
public function comments()
{
echo 'Look at this!';
}
}
?>
14. CodeIgniter Controllers
• If your URI contains more then two segments
they will be passed to your function as
parameters.
<?php
class Products extends CI_Controller {
public function shoes($sandals, $id)
{
echo $sandals;
echo $id;
}
}
?>
15. CodeIgniter Controllers
• Constructors are useful if you need to set
some default values, or run a default process
when your class is instantiated. Constructors
can't return a value, but they can do some
default work.
<?php
class Blog extends CI_Controller {
public function __construct()
{
parent::__construct();
// Your own constructor code
}
}
?>
17. Views
• A view is simply a web page, or a page
fragment, like a header, footer, sidebar, etc. In
fact, views can flexibly be embedded within
other views (within other views, etc., etc.) if
you need this type of hierarchy.
$this->load->view('view.php');
18. Views
• CodeIgniter will intelligently handle multiple
calls to $this->load->view from within a
controller.
<?php
class Page extends CI_Controller {
function index()
{
$data['page_title'] = 'Your title';
$this->load->view('header');
$this->load->view('menu');
$this->load->view('content', $data);
$this->load->view('footer');
}
}
?>
19. Views
• Data is passed from the controller to the view
by way of an array or an object in the second
parameter of the view loading function.
$data = array(
'title' => 'My Title',
'heading' => 'My Heading',
'message' => 'My Message'
);
$this->load->view('blogview', $data);
20. Views
• The data array you pass to your view files is
not limited to simple variables. You can pass
multi dimensional arrays, which can be
looped to generate multiple rows.
<?php
class Blog extends CI_Controller {
function index()
{
$data['todo_list'] = array('Clean House', 'Call Mom', 'Run
Errands');
$data['title'] = "My Real Title";
$data['heading'] = "My Real Heading";
$this->load->view('blogview', $data);
}
}
?>
23. Models
• Models are PHP classes that are designed to
work with information in your database.
class Model_name extends CI_Model {
function __construct()
{
parent::__construct();
}
}
26. Helpers
• Helpers, as the name suggests, help you with
tasks. Each helper file is simply a collection of
functions in a particular category.
• Unlike most other systems in CodeIgniter,
Helpers are not written in an Object Oriented
format. They are simple, procedural functions.
Each helper function performs one specific
task, with no dependence on other functions.
28. Helpers
• Extending Helpers
– To "extend" Helpers, create a file in your
application/helpers/ folder with an identical name
to the existing Helper, but prefixed with MY_
– The term "extend" is used loosely since Helper
functions are procedural and discrete and cannot
be extended in the traditional programmatic
sense.
30. Libraries
• All of the available libraries are located in your
system/libraries folder.
$this->load->library('class name');
$this->load->library(array('email', 'table'));
31. Libraries
• CodeIgniter permits your libraries to extend
native classes if you simply need to add some
functionality to an existing library. Or you can
even replace native libraries just by placing
identically named versions in your
application/libraries folder.
– You can create entirely new libraries.
– You can extend native libraries.
– You can replace native libraries.
32. Libraries
• File names must be capitalized. For example:
Myclass.php
• Class declarations must be capitalized. For
example: class Myclass
• Class names and file names must match.
33. Libraries
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Someclass {
public function some_function()
{
}
}
/* End of file Someclass.php */
$this->load->library('someclass');
$this->someclass->some_function();
34. Libraries
• You can use class constructor for initializing
data
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Someclass {
public function __construct($params)
{
// Do something with $params
}
}
?>
36. Libraries
• Replacing Native Libraries with Your Versions
– To use this feature you must name the file and the
class declaration exactly the same as the native
library.
– Note that most native classes are prefixed with
CI_.
class CI_Email {
}
37. Libraries
• If all you need to do is add some functionality to
an existing library - perhaps add a function or two
- then it's overkill to replace the entire library
with your version. In this case it's better to simply
extend the class. Extending a class is nearly
identical to replacing a class with a couple
exceptions:
– The class declaration must extend the parent class.
– Your new class name and filename must be prefixed
with MY_
38. Libraries
• The parent constructor must be called,
whenever we want to have to use a
constructor in our own library.
class MY_Email extends CI_Email {
public function __construct()
{
parent::__construct();
}
}
39. Libraries
• Setting your own prefix
– To set your own sub-class prefix, open your
application/config/config.php file and look for this
item:
$config['subclass_prefix'] = 'MY_';
41. Hooks
• CodeIgniter's Hooks feature provides a means
to tap into and modify the inner workings of
the framework without hacking the core files.
– For example, you might want to run a script right
before your controllers get loaded, or right after,
or you might want to trigger one of your own
scripts in some other location.
$config['enable_hooks'] = TRUE;
42. Hooks
• Hooks are defined in
application/config/hooks.php file. Each hook
is specified as an array with this prototype:
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('milk', 'tea', 'fruit')
);
43. Hooks
• class The name of the class you wish to invoke. If you prefer to use
a procedural function instead of a class, leave this item blank.
• function The function name you wish to call.
• filename The file name containing your class/function.
• filepath The name of the directory containing your script. Note:
Your script must be located in a directory INSIDE your application
folder, so the file path is relative to that folder. For example, if your
script is located in application/hooks, you will simply use hooks as
your filepath. If your script is located in application/hooks/utilities
you will use hooks/utilities as your filepath. No trailing slash.
• params Any parameters you wish to pass to your script. This item is
optional.
44. Hooks
• Hook Points
– pre_system: Called very early during system execution.
Only the benchmark and hooks class have been loaded at
this point. No routing or other processes have happened.
– pre_controller: Called immediately prior to any of your
controllers being called. All base classes, routing, and
security checks have been done.
– post_controller_constructor: Called immediately after
your controller is instantiated, but prior to any method
calls happening.
– post_controller: Called immediately after your controller is
fully executed.
45. Hooks
– display_override: Overrides the _display() function, used
to send the finalized page to the web browser at the end
of system execution. This permits you to use your own
display methodology. Note that you will need to reference
the CI superobject with $this->CI =& get_instance() and
then the finalized data will be available by calling $this->CI-
>output->get_output()
– cache_override: Enables you to call your own function
instead of the _display_cache() function in the output
class. This permits you to use your own cache display
mechanism.
– post_system: Called after the final rendered page is sent
to the browser, at the end of system execution after the
finalized data is sent to the browser.