2. 2
01
PHP i ostali
programski jezici
03
PHP CMS &
Frameworks
04
Best practice/
Dobra praksa
05
Projekat
| Predavači i teme
06
Literatura
Danilo Purić
Tehnicki direktor
02
Zasto PHP I
MySQL
Tarik Zaimović
Business development
3. 3
| 01 PHP i ostali programski jezici
TIOBE Programming community index
• Broj kvalifikovanih inzenjera u svijetu
• Broj kurseva i nezavisnih distributera
• Popularnosti na pretrazivacima (Google, Bingm, Yahoo, Amazon, Wikipedia…)
• Ne postoji najbolji programski jezik
• Zasto sluzi TIOBE index
Pomoc prilikom odabira softvera
4. 4
| 01 PHP i ostali programski jezici
Koriscenje programskih jezika I njihova primjena
• Web
• Java
• Python
• C#
• PHP
• Java Script
• Ruby
• …
• Desktop
• Java
• C
• C++
• Python
• C#
• ….
• Mobile
• Java
• C#
• Objective C
• Python
• ….
5. 5
| 02 Zašto PHP & MySQL
Dobre i lose strane programskog jezika PHP
• DOBRE STRANE
• Brza i laka instalacija
• Brzo ucenje
• Brzo izvrsavanje
• Cjenovna pristupacnost alata, licenci,
izradjenog softwera, hostinga
• Fleksibilnost odabira baza podataka
• Veliki broj PHP programera
• Velika zajednica
• Dobra dokumentacija
• Veliki broj open source platformi i
frameworka
• LOSE STRANE
• Podrzava proceduralani kod
• Nema jasnih tipova podataka
• Nema podrsku integrisanih biblioteka
• Losa koding praksa kod velikog broja PHP
developera
• Kvari programerske navike
• Mnostvo loseg koda
• Losa sigurnost aplikacija
• Nije dobar za velike aplikacije i informacione
sisteme
11. 11
| 03 PHP CMS AND FRAMEWORS
WordPress – Best pick for beginners, works well for small
to medium sized websites & blogs.
Joomla – Good for E-commerce type of sites, but require at
least some level of technical coding.
Drupal – The most difficult one, but also the most powerful
CMS.
Magento is the eCommerce software and platform trusted
by the world's leading brands.
13. 13
| 03 PHP CMS AND FRAMEWORS
What exactly is a PHP framework?
A PHP framework gives you a well
defined coding template where you
need to place certain types of code.
PHP frameworks can be used as a rapid
application development method, enabling
quick prototypes to be developed.
Security
Suitable for Teamwork
Libraries and Helpers
16. 16
| 03 PHP CMS AND FRAMEWORS
Symfony – Build bigger enterprise applications the right
way.
Laravel – Good small and midsize applications. Uses
symphony in CORE.
Phalcon – Phalcon is the fastest framework on the list. Built
on C, but offered as PHP extension.
CodeIgniter Best pick for beginners – built for developers
who need a simple and elegant toolkit
17. 17
PHP Enviroment
XAMPP
Zend Server
Vagrant
Integrated development
environment
Notepad ++
Dreamviewer
Zend Studio
PHP Storm
Code Practice
OOP, MVC, Coding Standards, DBAL
S
IDE
C
Debugging
Manual debuging
Xdebug
USE Frameworks
Symfony, Laravel, CodeIgniter
D
F
| 04 BEST PRACTICE
18. 18
| 04 BEST PRACTICE – PHP ENVIROMENT
XAMPP is the most
popular PHP development
environment
XAMPP is a completely free,
easy to install Apache
distribution containing
MySQL, PHP, and Perl. The
XAMPP open source package
has been set up to be
incredibly easy to install and
to use.
The Complete PHP
Application Platform
Zend Server is the #1
professional PHP stack. It is
the most complete PHP
distribution value-add
features designed to
optimize productivity,
performance, scalability and
reliability.
Development
environments made easy.
Create and configure
lightweight, reproducible,
and portable development
environments.
21. 21
| 04 BEST PRACTICE – CODE PRACTICE
PHP kod ne smije imati html u sebi. Mora se koristi neyki Template
engine
1. Smarty
2. Twig
Za konekciju na bazu koristiti DBAL
1. Doctrine
2. PDO
Use Objects (or OOP)
Coding Standards Documents
Befriend the PHP Manual
Turn on Error Reporting
22. 22
| 05 Projekat - smjernice
Replika komentar sistema www.blic.rs - http://goo.gl/T4fM4L
• Obavezno koriscenje MVC paterna
• Neophodno koriscenje nekog od popularnih frameworka
• Koristiti servise za komunikaciju sa AJAX-om
• Kod mora biti napisan iskljucivo OOP
• Adrministratorski panel
Pozeljna implementacija Kendo UI kao grid za prikaz komentara u admin
djelu
• Implementacija binarnog stabla umjesto rekruzivnog pristupa
• Koriscenje database DBL (Database Abstraction Layer)
• Koriscenje GIT alata i postavljanje na google code
• Imlementacija mini sistema za rad sa sadrzajem - Mini CMS