PHP Classes

File: fwphp/glomodul/blog/msgmkd/altervista011.txt

Recommend this page to a friend!
  Classes of Slavko Srakocic   B12 PHP FW   fwphp/glomodul/blog/msgmkd/altervista011.txt   Download  
File: fwphp/glomodul/blog/msgmkd/altervista011.txt
Role: Documentation
Content type: text/plain
Description: Documentation
Class: B12 PHP FW
Manage database records with a PDO CRUD interface
Author: By
Last change: Update of fwphp/glomodul/blog/msgmkd/altervista011.txt
Date: 1 year ago
Size: 8,972 bytes


Class file image Download
## 11\. PHP CMS - XAMP 64 bit on Windows 10, flat files CRud (u, d in Op.Sys - WYSIWYG SimleMDE or Summernote) or relational DB tblrows CRUD Revised 2020.03.26 Code download : [****]( I made **B12phpfw ver. 6** code skeleton on which are modules Mnu, Blog (Msg), Mkd and many PHP learning examples. ### Conclusion for this and my previous 10 posts Posts are organized as PHP learning book, so I change previous posts periodically ! ### 5W of every activity (highest ideas, categories, eg in journalism...) `who`: Web site - menu & CRUD code skeleton applied to 3 modules (wrong to say applications) : "Mnu", "Blog (Messages, Msg)", "Mkd" in dirs : 1. WEBSERVERDOCROOT\\fwphp\\www (fwphp is group of applications, www is menu appl consisting of one module) 2. WEBSERVERDOCROOT\\fwphp\\glomodul\\blog (**glomodul** is "application global modules" = group of global modules, ) 3. WEBSERVERDOCROOT\\fwphp\\glomodul\\mkd `where`(is code) : All Sites level Globals, Modules Globals, Menu code skeleton, Config classes, Crud classes. `when`: Clear visible programming **steps** - **signal flow,** **data flow** & **code flow** `what`: Basic Menu & CRUD code skeleton for (who) `how`: 1. FUNCTIONAL (DECLARATIVE) NAMING - descriptions of WHAT, NOT HOW STEPS -eg not programming steps M, V, C. Directory named invoice\_fmb, means bussiness proces, not how steps (ee not 3 dirs M, V, C for all modules - fmb-s) ! 2. index.php is MAIN MODULE'S SINGLE ENTRY POINT ee all (submenus) calls go through this script. Here is **configuration minimized, CONVENTIONS maximized**. Same all other modules. 3. **simple OWN DEBUGGING** and XDEBUG. 4. CLASSES FOR: Config, (Controllers), Models (CRUD), not for Views but could be. 5. namespaces & own autoloading class scripts. Composer's PSR-4 is problem for not 3 dirs M, V, C for all modules but **each module in own dir (huge difference)** ? 6. pagination in Blog pages 7. beautiful urls without web server url rewritting (see QS="?" constant. 8. search/filtering/sort in Blog pages 9. password\_verify and password\_hash functions explained (in z\_examples) 10. RTE (Rich Text Edit) markdown (SimpleMDE & Parsedown MD2HTML) or HTML (Summernote) `why`: Not found hows above in learning sources : Simplest possible code skeleton, newest PHP coding style, good code explanations - code help. ### Main (Root) module contains main index.php [www]( "Mnu module") subdir in fwphp dir contains root module, site's index.php. Has links on many test-learn examples. ### [Mkd]( "Mkd module") module is Dreamweaver replacement Can WYSIWYG edit: 1. markdown using SimpleMDE or other 2. or html using Summernote or other. No relational database CRUD (so code is simpler) but similar, based on same **B12phpfw** fw (program skeleton) as [**Msg**]( "Blog, Msg module") realational DB tables rows PDO CRUD module, so Mkd is good for learning MVC framework skeleton coding. I think B12phpfw is best-simplest DB PDO CRUD framework (for framework haters which also am I partially: it is not framework, it is **standardized basic code skeleton**) . Why version 6 ? B12phpfw is good example how small but important changes in fw code cause: 1. lot of work 2. and when done much simpler use of basic code skeleton. <br /><br /><br /> ### PREREQUISITES FOR PHP WEB DEVELOPMENT ### 1\. XAMPP 64 bit, php 7.4.2 []( (I do not use WAMP SERVER anymore) If no XAMPP (more work) : PHP (for Windows **thread safe**) : php 7.4.x needs VC15 or VS16 (Visual Studio 2017 or 2019 compiler respectively) Apache : ### 2\. CONFIG SCRIPTS see 00info\_php2.php - all config scripts are here J:\\xampp\\apache\\conf\\httpd.conf J:\\xampp\\apache\\conf\\extra\\httpd-vhosts.conf C:\\Windows\\System32\\drivers\\etc\\hosts J:\\xampp\\php\\php.ini ### 3\. CONNECT PHP 7.2.4 TO OracleXE 11.2 ORACLE 11g PDO & OCI8 EXTENSION - OPTIONAL **php\_pdo\_oci.dll** comes with XAMPP. In php.ini **extension=pdo\_oci** and **extension=php\_oci8\_11g**.dll (.dll is optional, not required) oci8.default\_prefetch = 100 []( (for XAMPP on Windows **thread safe**) ver. [2.2.0]( 2018-12-10 copy 1\_php\ to J:\\xampp\\php\\ext and unzip php\_oci8\_11g.dll . CLI PHP : J:\\xampp\\php\\php.exe (before I used J:\\wamp64\\bin\\php\\php7.2.9\\php.exe) ORACLE 11g OCI8 EXTENSION ON NETWORK : OR for PC on on network ? : Feb 6 2018 Christopher Jones : ORACLE CLIENT LIBRARIES of same 32-bit or 64-bit architecture as PHP and are first in PATH. If you use Instant Client you need to have the correct VS Redistributable, see 1. 64 bit or 2. 32 bit ### 4\. COMPOSER DEPENDENCY MANAGER FOR PHP (CODE DOWNLOADER) For XAMPP on WINDOWS just install []( from page []( . WAMP does not like php in PATH variable. So composer update does not work. \[\*master\] J:\\awww\\w\\fwphp> J:\\wamp64\\bin\\php\\php7.2.9\\php.exe C:\\composer\\composer.phar update (1) or better C:\\composer\\composer7.bat : Save the file along with the originally installed composer.bat @echo OFF :: in case DelayedExpansion is on and a path contains ! setlocal DISABLEDELAYEDEXPANSION J:\\wamp64\\bin\\php\\php7.2.9\\php.exe "%~dp0composer.phar" %\* Now call php7 composer with the new command: \[\*master\] J:\\awww\\w\\fwphp> composer7 selfupdate (1.7.2, Use composer self-update --rollback to return to version 1.7.1) composer7 update (2) is same as (1) ### 5\. GIT MULTIUSER SCRIPTS SYNCHRONIZER see Git book see <br /><br /><br /> #### WAMP 64 bit 2018\-05\-25 on Windows 10 64 bit - I do not use WAMP or ZWAMP anymore Seems simpler than ZWAMP - no entries in PATH variable. Composer works after reinstal (asks php.exe dir) - see below. #### Composer manual Command-line installation - I do not use this For XAMPP on WINDOWS just install []( from page []( . To automate the installation **on Linux only**, use [the guide on installing Composer programmatically]( 1. **Deinstall Composer if installed** 2. **cd J:\\wamp64\\www\\fwphp** J:\\wamp64\\bin\\php\\php5.6.35\\php.exe -v PHP 5.6.35 (cli) (built: Mar 29 2018 14:27:15) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies 3. J:\\wamp64\\bin\\php\\php5.6.35\\php.exe \-r "copy('', 'composer-setup.php');"J:\\wamp64\\bin\\php\\php5.6.35\\php.exe -r "if (hash\_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP\_EOL;" outputs : Installer verifiedJ:\\wamp64\\bin\\php\\php5.6.35\\php.exe composer-setup.phpoutputs : Composer (version 1.6.5) successfully installed to: J:\\wamp64\\www\\fwphp\\composer.phar Use it: php composer.pharJ:\\wamp64\\bin\\php\\php5.6.35\\php.exe -r "unlink('composer-setup.php');"The 4 lines above will, in order: 1. Download the installer to the current directory 2. Verify the installer SHA-384 which you can also cross-check here []( 3. Run the installer - will check some php.ini settings, warn you if they are set incorrectly, and then download the latest composer.phar in the current directory 4. Remove the installer 4. Create a new composer.bat file alongside composer.phar: J:\\wamp64\\www\\fwphp\>echo @J:\\wamp64\\bin\\php\\php5.6.35\\php.exe "%~dp0composer.phar" %\*>composer.bat 5. **Add directory J:\\wamp64\\www\\fwphp to your PATH environment variable if it isn't already.** For information on changing your PATH variable, please see this article []( and/or use Google. 6. Close your current terminal. Test usage with a new terminal: C:\\Windows\\System32>**composer -V** Composer version 1.6.5 2018-05-04 11:44:59