Laravel is built with testing in mind. In fact, support for testing with PHPUnit is included out of the box, and a phpunit.xml file is already setup for your application. The framework also ships with convenient helper methods allowing you to expressively test your applications.
An ExampleTest.php file is provided in the tests directory. After installing a new Laravel application, simply run phpunit on the command line to run your tests.

For window user, you can run phpunit from the root project directory as follow:

project/name/rootdirectory> vendor/bin/phpunit (for Window users, unix users shoud use vender\bin\phpunit or phpuni)

The above command will test all test cases in the tests directory.
Welcome to Portable Git (version 1.9.5-preview20141217)


Run 'git help git' to display the help index.
Run 'git help ' to display help for specific commands.

Senghok@USER-PC /c/wamp/www/socialwall (master)
$ cd ..

Senghok@USER-PC /c/wamp/www
$ cd wasado-pos

Senghok@USER-PC /c/wamp/www/wasado-pos (master)
$ git commit --interactive
warning: LF will be replaced by CRLF in assets/uploads/avatars/index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in assets/uploads/avatars/thumbs/index.html
.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in assets/uploads/csv/index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in assets/uploads/index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in assets/uploads/thumbs/index.html.
The file will have its original line endings in your working directory.
           staged     unstaged path
  1:    unchanged        +0/-0 SMA3
  2:    unchanged        +0/-0 assets/uploads/avatars/index.html
  3:    unchanged        +0/-0 assets/uploads/avatars/thumbs/index.html
  4:    unchanged        +0/-0 assets/uploads/csv/index.html
  5:    unchanged        +0/-0 assets/uploads/index.html
  6:    unchanged        +0/-0 assets/uploads/thumbs/index.html
  7:    unchanged        +1/-1 index.php
  8:    unchanged      +37/-37 sma/config/config.php
  9:    unchanged        +4/-5 sma/config/database.php
 10:    unchanged        +2/-2 sma/controllers/Products.php
 11:    unchanged        +2/-2 themes/default/views/transfers/add.php

*** Commands ***
  1: status       2: update       3: revert       4: add untracked
  5: patch        6: diff         7: quit         8: help
What now> u
warning: LF will be replaced by CRLF in assets/uploads/avatars/index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in assets/uploads/avatars/thumbs/index.html
.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in assets/uploads/csv/index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in assets/uploads/index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in assets/uploads/thumbs/index.html.
The file will have its original line endings in your working directory.
           staged     unstaged path
  1:    unchanged        +0/-0 SMA3
  2:    unchanged        +0/-0 assets/uploads/avatars/index.html
  3:    unchanged        +0/-0 assets/uploads/avatars/thumbs/index.html
  4:    unchanged        +0/-0 assets/uploads/csv/index.html
  5:    unchanged        +0/-0 assets/uploads/index.html
  6:    unchanged        +0/-0 assets/uploads/thumbs/index.html
  7:    unchanged        +1/-1 index.php
  8:    unchanged      +37/-37 sma/config/config.php
  9:    unchanged        +4/-5 sma/config/database.php
 10:    unchanged        +2/-2 sma/controllers/Products.php
 11:    unchanged        +2/-2 themes/default/views/transfers/add.php
Update>> 11
           staged     unstaged path
  1:    unchanged        +0/-0 SMA3
  2:    unchanged        +0/-0 assets/uploads/avatars/index.html
  3:    unchanged        +0/-0 assets/uploads/avatars/thumbs/index.html
  4:    unchanged        +0/-0 assets/uploads/csv/index.html
  5:    unchanged        +0/-0 assets/uploads/index.html
  6:    unchanged        +0/-0 assets/uploads/thumbs/index.html
  7:    unchanged        +1/-1 index.php
  8:    unchanged      +37/-37 sma/config/config.php
  9:    unchanged        +4/-5 sma/config/database.php
 10:    unchanged        +2/-2 sma/controllers/Products.php
*11:    unchanged        +2/-2 themes/default/views/transfers/add.php
Update>>
updated one path

*** Commands ***
  1: status       2: update       3: revert       4: add untracked
  5: patch        6: diff         7: quit         8: help
What now> q
Bye.
[master 34f32eb] fixed add transfer
 1 file changed, 2 insertions(+), 2 deletions(-)

Senghok@USER-PC /c/wamp/www/wasado-pos (master)
$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

In Git 2.0, Git will default to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Password for 'https://davysorn@bitbucket.org':
Counting objects: 13, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 635 bytes | 0 bytes/s, done.
Total 7 (delta 5), reused 0 (delta 0)
To https://davysorn@bitbucket.org/mouypistudio/wasado-pos.git
   1e3dba3..34f32eb  master -> master

Senghok@USER-PC /c/wamp/www/wasado-pos (master)
$
PHP limits the number of variable to be sent to the server. The default of max_input_vars of php is 2500 variables. The problem is if you need to send too many variables, you will have a problem with the number of variables you have send and received is not the same. For example, you have 10 array variables with 300 records, then the total of variables need to be sent to the server is 3000 variables. So the total is excess the max_input_vars, it causes the problem.

The solution is go to edit php.ini and increase the value of max_input_vars, but it is not the best solution because if you have more records need to be sent, you will still have the problem.

The best solution is trying to decrease the number of variables which need to be sent to the server, for example sending via JSON object.
download and install ruby
-------------------------
    rubyinstaller-2.1.6-x64
    (check all options)

test ruby version
-----------------
    ruby -v
        ruby 2.1.6p336 (2015-04-13 revision 50298) [x64-mingw32]

to install DevKit
-----------------
    download it, run it to extract it somewhere (permanent).
    then cd to it, run ruby dk.rb init and ruby dk.rb install
    to bind it to ruby installations in your path
        extract to C:\DevKit
        edit C:\DevKit\config.yml
        and add ruby path - C:/Ruby21-x64

install rails
-------------
    gem install rails

test rails version
------------------
    rails -v
        Rails 4.2.1

make a rubyonrails project
--------------------------
    rails new path/to/your/new/application

run rubyonrails
-------------------
    cd path/to/your/new/application
    rails server

    http://localhost:3000

to install missing gems
-----------------------
    bundle install

to see where a bundled gem is installed
----------------------------------------
    bundle show sqlite3
-Install VirtualBox
-Install Vagrant
-Install Git
-Install Homestead Vagrant Box
    Run Git Shell
        It shows as below
        Welcome to Portable Git (version 1.9.5-preview20141217)
        Run 'git help git' to display the help index.
        Run 'git help ' to display help for specific commands.
   
    vagrant box add laravel/homestead                (this will download and create a directory ~/.vagrant.d in user's home directory)
    cd ~
    git clone https://github.com/laravel/homestead.git Homestead            (this will create ~/Homestead directory in user's home directory)
    cd Homestead
    bash init.sh   (this will create ~/.homestead directory in user's home directory)
-Configuring Homestead
    cd ~/.homestead
    vim Homestead.yaml
        set
            ip: "192.168.10.10"      (This IP is the vagrant virtual server's IP)
            ...
            provider: virtualbox
            ...
            authorize: ~/.ssh/homestead_rsa.pub

            keys:
                - ~/.ssh/homestead_rsa

                (Note: to generate homestead_rsa.pub and homestead_rsa, Generate SSH Key Open Bitvise SSH Client -> Client key manager -> Export Both public and private key with rsa algorithm in OpenSSH format (Ex. homestead_rsa, homestead_rsa.pub))
               
            folders:
                - map: C:/Code                (This is our local path)
                  to: /home/vagrant/Code    (This is vagrant virtual server path)

            sites:
                - map: homestead.app                        (This is a virtual domain which we configure in /etc/hosts)
                  to: /home/vagrant/Code/Laravel/public        (This is a path on vagrant virtual server)
                - map: asgardcms.app
                  to: /home/vagrant/Code/asgardcms/public

            databases:
                - asgardcms
                - homestead
-Create a directory
    mkdir c:/Code
-Add hosts  /etc/hosts
192.168.10.10    asgardcms.app      (This IP is the vagrant virtual server's IP)
-Start vagrant
    cd ~/Homestead                (Note: ~ is user home directory, in Window ~ is c:/Users/{UserName})
    vagrant up         (vagrant reload)
-Remote to vagrant
    vagrant ssh
        After remote successfully, it displays
        Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)

         * Documentation:  https://help.ubuntu.com/
        Last login: Mon Dec 21 15:06:01 2015 from 10.0.2.2
        vagrant@homestead:~$ ls   
   
        To remote to mysql server
            mysql -u homestead -p
                password: secret

-create a project
    cd c:/Code
    composer create-project asgardcms/platform asgardcms (this will create asgardcms directory and load project from git server)
    cd asgardcms
    php artisan asgard:install
        At the end, it will ask to configure its database
         Enter your database host [localhost]:
         > localhost

         Enter your database name [homestead]:
         > homestead

         Enter your database username [homestead]:
         > homestead

         Enter your database password (leave for no password) [secret]:
         > secret

        Database successfully configured

        After database successfully configured
          User Module
          Starting the User Module setup...

         Enter your first name:
         >

         Enter your last name:
         >

         Enter your email address:
         >

         Enter a password:
         >

         Please confirm your password:
         >

        Admin account created!
        Platform ready! You can now login with your username and password at /backend
        vagrant@homestead:~/Code/asgardcms$
       
-To test
    Open a web browser then go to asgardcms.app or asgardcms.app/backend (username/password)
   
   
vagrant destroy vagrant_id
vagrant global-status
vagrant provision


Per Project Installation
=========================
Installing Homestead per project may be beneficial if you wish to ship a Vagrantfile with your project, allowing others working on the project to simply vagrant up.

To install Homestead directly into your project, require it using Composer
    composer require laravel/homestead --dev

    vendor\bin\homestead make  (this command generates Vagrantfile and Homestead.yaml file in your project root. It will automatically configure the sites and folders directives in the Homestead.yaml file)
+POTS (Plain Old Telephone Service) refers to the standard telephone service that most homes use. In contrast, telephone services based on high-speed, digital communications lines, such as ISDN and FDDI, are not POTS. The man distinctions between POTS and non-POTS services are speed and bandwidth. POTS is generally restricted to about 52 Kbps (52000 bits per second). The POTS network is also called the public switched telephone network (PSTN).
+dial-up access refers to connecting a device to a network via a modem and a public telephone network. The maximum data rate was 56 Kbps.
+leased line is a permanent connection between two devices. Leased lines provide faster throughput and better quality connections, but they are also more expensive.
+ISDN (Integrated Service Digital Network) an international communications standard for sending voice, video, and data over digital telephone lines or normal telephone wires. ISDN supports data transfer rates of 64 Kbps (64000 bits per second). It employs baseband transmission.
+B-ISDN uses broadband transmission and is able to support transmission rates of 1.5 Mbps.
+IDSL (ISDN Digital Subscriber Line) a method of providing DSL technology over existing ISDN lines. Even though the transfer rates for IDSL are about the same as ISDN (144 kbps v. 128 kbps), and IDSL circuits typically only carry data (not voice), the major benefits of switching to IDSL from ISDN are always-on connections, thus eliminating call setup delays; flat rate billing, instead of per minute fees; and transmission of data over the data network, rather than the PSTN.
+xDSL: referes collectively to all types of digital subscriber lines. It is similar to ISDN inasmuch as both operate over existing copper telephone lines (POTS) and both require the short runs to a central telephone office (usually less than 20000 feet). However, xDSL offers much higher speeds - up to 32 Mbps for upstream traffic, and from 32 Kbps to over 1Mbps for downstream traffic.
    -ADSL (Asymmetric DSL) is a type of DSL broadband communication technology used for connecting to the Internet. ADSL requires a special ADSL modem and subscribers must be in close geographical locations to the provider's central office to receive ADSL service. ADSL supports data rates of from 1.5 to 9 Mbps when receiving data (known as the downstream rate) and from 16 to 640 Kbps when sending data (known as the upstream rate).
    -SDSL (Symmetric DSL) requires a special SDSL modem, it supports the same data rates for upstream and downstream traffic. SDSL supports data rates up to 3 Mbps.
    -HDSL (High-data-rate DSL)
    -VDSL (Very High DSL) transmits data in the 13 Mbps - 55 Mbps range over short distances, usually between 1000 and 4500 feet (300 - 1500 meters), of twisted pair copper wire. The shorter the distance, the faster the connection rate.
    -PaDSL (Private Access DSL) is a solution for creating secure private broadband VPNs. It is most useful to business or organizations who wants to use DSL as an access technology for WAN/VPN objectives without the inherent risk of using the public Internet as the access medium.
+broadband: the term broadband is used to describe a type of data transmission in which a single medium (wire) can carry several channels at once. Cable TV, for example, uses broadband transmission. In contrast, baseband transmission allows only one single at a time.
+throughput: the amount of data transferred from one place to another or processed in a specified amount of time. Data transfer rates for disk drives and networks are measured in terms of throughput. Typically, throughputs are measured in kbps, Mbps and Gbps.
+data transfer rate: the speed with which data can be transmitted from one device to another. Data rates are often measured in megabits (million bits) or megabits (million bytes) per second. These are usually abbreviated as Mbps and MBps, respectively. Another term of data transfer rate is throughput.
+bandwidth: is the amount of data that can be transmitted in a fixed amount of time. For digital devices, the bandwidth is usually expressed in bits per second (bps) or bytes per second. For analog devices, the bandwidth is expressed in cycles per second, or Hertz (Hz).
+bandwidth vs throughput vs latency
+mobile broadband: the phrase used to describe Internet access (wireless communications) that is obtained through a portable modem or other device, such as a mobile phone. It is typically used by a wireless carriers to describe its mobile Internet access service that uses the mobile phone infrastructure, or cellular network. A number of network standards can be used for mobile broadband including:
    -GSM (Global Sstem for Mobile Communications) 9.6 Kbps
    -GPRS (General Packet Radio Service) 115 Kbps
    -EDGE (Enhanced Data GSM Environment) 384 Kbps
    -3G
    -WiMAX
    -UMTS (Universal Mobile Telecommunications System)
    -HSPDA (High Speed Downlink Packet Access)
    -HSUPA (High Speed Uplink Packet Access)

CDMA (Code-Division Multiple Access)
TDM (Time-division multiplexing)
CDMA vs TDM

TDMA (Time Division Multiple Access)

PPPoE (Point-to-Point Protocol over Ethernet) relies on two widely accepted standards: PPP and Ethernet. PPPoE is a specification for connecting the users on an Ethernet to the Internet through a common broadband medium, such as a single DSL line, wireless device or cable modem. All the users over the Ethernet share a common connection, so the Ethernet principles supporting multiple users in a LAN combine witht the principles of PPP, which apply to serial connections.


+CAM (Channel Access Method) a protocol for how data is transmitted in the bottom two layers of the OSI model. CAMs describe how networking systems put data on the network media, how low-level errors are dealt with, and how the network policies itself. Polling, contention and token passing are three examples of CAMs.
    -CSMA/CD (Carrier Sense Multiple Access / Collision Detection)
    -Token-ring network: a type of computer network in which all the computers are arranged (schematically) in a circle. A token, when is a special bit pattern, travels around the circle. To send a message, a computer catches the token, attaches a message to it, and then lets it continue to travel around the network.
   
    -token passing: a type of CAM. Token passing uses a token, or series of bits, to grant a device permission to transmit over the network. Whichever device has the token can put data into the network. When its transmission is complete, the device passes the token along to the next device in the topology. System rules in the protocol specifications mandate how long a device may keep the token, how long it can transmit for and how to generate a new token if there isn't one circulating.
    -polling: is a CAM. In a master/slave scenario, the master queries each slave device in turn as to whether it has any data to transmit. If the slave answers yes then the device is permitted to transmit its data. If the slave answers no then the master moves on and polls the next slave device. The process is repeated continuously.
    -contention: a type of network protocol that allows nodes to contend for network access. That is, two or more nodes may try to send messages across the network simultaneously. The contention protocol defines what happens when this occurs. The most widely used contention protocol is CSMA/CD, used by Ethernet.

+Ethernet: a LAN architecture developed by Xerox Corporation in cooperation with DEC and Intel in 1976. Ethernet uses a bus or star topology and supports data transfer rate of 10 Mbps. The Ethernet specification served as the basic for the IEEE 802.3 standard, which specifies the physical and lower software layers. Ethernet uses the CSMA/CD access method to handle simultaneous demands. It is one of the most widely implemented LAN standards.
+100Base-T (or Fast Ethernet) a newer version of Ethernet supports data transfer rates of 100 Mbps.
+Gigabit Ethernet a newest version of Ethernet supports data transfer rates of 1 gigabit (1000 megabits) per second.


+Types of Internet Connections
    -Analog: Dial-up Internet Access
    -ISDN (Integrated Services Digital Network)
    -B-ISDN (Broadband ISDN)
    -DSL (Digital Subscriber Line)
    -ADSL (Asymmetric Digital Subscriber Line)
    -ADSL+2 (ADSL Extension)
    -SDSL (Symmetric Digital Subscriber Line)
    -VDSL (Very High DSL)
    -Cable (Broadband Internet Connection)
    -Wireless Internet Connections
    -T-1 Lines (Leased Line)
    -Bonded T-1
    -T-3 Lines (Dedicated Leased Line)
    -OC3 (Optical Carrier)
    -Internet over Satellite
   
+Network Topology
    -Mesh Topology
    -Star Topology
    -Bus Topology
    -Ring Topology
    -Tree Topology
   
+VPN (Virtual Private Network) is a network that is constructed by using public wires - usually the Internet - to connect to a private network, such as a company's internal network. There are a number of systems that enable you to create networks using the Internet as the medium for transporting data. These systems use encryption and other security mechanisms to ensure that only authorized users can access the network and that the data cannot be intercepted.


+shared hosting
+VPS (virtual private server)
+dedicated server hosting: as a dedicated server client you rent an entire dedicated server from us. We remain the oner of the physical server, but you get complete control over the content and built.
+colocation: you rent space in data centres to securely house your IT hardware, whilst retaining full ownership and complete control.
+reseller

parked domain
domain parking
multi websites
Unlimited Hosted Domains
Unlimited Bandwidth
1 dedicated IP address
Public IPs


+RIR (Regional Internet Registry)
Why RIRs are needed.

Yes, there are millions of IP addresses available, but that number is not limitless. The current version of the IP address (technically known as IPv4) does not have an infinite number of addresses available. That fact made the Internet administration organizations realize there was an urgent need for up-close and smart management of the inventory of IP addresses. Put another way, the IP world realized there had to be enough IP addresses to go around for everyone, and a system for allocating them efficiently.

The RIR came up with guidelines to make it all work. Each individual RIR is required to follow a neutral policy of IP address allocation and distribution. That helps prevent one RIR from hoarding IP addresses for computer users in its geographical region or doing anything to put other regions at a disadvantage. After all, without ongoing access to IP addresses—which allows people to connect with other users locally and worldwide—a network is doomed.

The Role of the RIR.

The RIRs, as a matter of fact, do not generate the IP addresses that they themselves allocate. The Internet Assigned Numbers Authority (IANA) is the Internet organization that allocates IP addresses to each RIR, which takes it from there, handling the next level of allocation. An RIR serves:

Large regional entities, including Internet Service Providers (ISPs)
Educational institutions
Governments
Large corporation and organizations
RIR meets NRO.

All five RIRs combined to form the Number Resource Organization (NRO). The NRO was needed to help the RIRs coordinate technical and policy initiatives among themselves and to ensure that the RIRs could work seamlessly together. The mission of the NRO is to:

Keep tabs on the IP address resource pool, protecting available IP addresses
Protect and promote the policies of the Internet
Serve as a focal point for input from the Internet communities in each RIR
    -ARIN (American Registry for Internet Numbers)
    -LACNIC (Latin American and Caribbean Internet Address Registry)
    -RIPE NCC (R�seaux IP Europ�ens Network Coordination Centre)
    -AfriNIC (The African Network Information Centre)
    -APNIC (The Asia-Pacific Network Information Centre)

The IP Transit service provides global Internet access for Licensed Telecom Operators with an Autonomous System (AS) Number obtained from APNIC.

Laravel ere...