Laravel is a simple, elegant PHP Web development Framework (PHP Web framework). It frees you from the messy code of noodles, and it helps you build a perfect web app, and every line of code can be concise and expressive. So we collected the "Laravel5.2 blog actual combat video Tutorial", this is a set of project combat-oriented Laravel5.2 real-world Development course, is the true sense of the introduction to proficiency. Hope to help everyone to better learn laravel framework.
Course Play Address: http://www.php.cn/course/283.html
The teacher's lecture style:
The lectures are kind and natural, unpretentious, no affectation, nor deliberately rendered, but instilled, careful way, between teachers and students in a kind of equality, cooperation, harmonious atmosphere, the silent emotional exchange, the thirst for knowledge and exploration into a simple, real teaching situation, students in the quiet thinking, To gain knowledge in silent consent
The more difficult part of this video is the HTTP middleware:
-What is middleware?
First, why middleware
The rapid development of computer technology. From the view of hardware technology, the CPU speed is getting higher and the processing ability is more and more strong; From software technology, the scale of application is expanding, especially the advent of Internet and WWW, which makes the application scope of computer wider, many applications need to run on heterogeneous platform of network environment. All of this has put forward new requirements for the next generation of software development. In this distributed heterogeneous environment, there are often a variety of hardware system platforms (such as PCs, workstations, small machines, etc.), on these hardware platforms there are a variety of system software (such as different operating systems, databases, language compilers, etc.), and a variety of styles of user interface, These hardware system platforms may also be connected using different network protocols and network architectures. How to integrate these systems and develop new applications is a very practical and difficult problem.
Two what is middleware
In order to solve the problem of distributed heterogeneity, the concept of middleware (middleware) is proposed. Middleware is a common service between the platform (Hardware and operating system) and applications, as shown in 1, which have standard program interfaces and protocols. For different operating systems and hardware platforms, they can have multiple implementations that conform to the interface and protocol specifications.
It may be difficult to define a strict middleware, but the middleware should have some of the following features:
Meet the needs of a wide range of applications
Runs on a variety of hardware and OS platforms
Supports distributed computing, providing the interaction of applications or services that are transparent across network, hardware, and OS platforms
Support for standard protocols
Support for standard interfaces
Because of the importance of standard interfaces for portability and for interoperability of standard protocols, middleware has become a major part of many standardization efforts. For application software development, middleware is much more important than operating system and network services, middleware provides a program interface to define a relatively stable high-level application environment, no matter how the underlying computer hardware and system software updates, as long as the middleware upgrade update, and keep the middleware external interface definition unchanged, The application software requires virtually no modification, thereby protecting the enterprise's significant investment in application software development and maintenance.
Iii. Classification of main middleware
Middleware covers a wide range of applications to different needs to emerge a variety of unique middleware products. However, there is not a more precise definition of middleware so far, so the classification of middleware will be different at various angles or different levels. Since middleware needs to shield heterogeneous operating systems and network protocols in distributed environments, it must be able to provide communication services in a distributed environment, which we call the platform. Depending on the purpose and the implementation mechanism, we divide the platform into the following major categories:
Remote Procedure Call (remotes Procedure calls)
Message-oriented middleware (message-oriented middleware)
Object Request Agent (Brokers)
They can provide different forms of communication services, including synchronization, queuing, subscription publishing, broadcast, etc., on these basic communication platforms, can build a variety of frameworks, for applications to provide services in different areas, such as transaction processing monitors, distributed data access, object transaction manager OTM and so on. Platform for the upper layer of the application to shield the differences of heterogeneous platforms, and its framework defines the application in the corresponding domain system structure, standard service components, etc., the user only need to tell the framework of the event of concern, and then provide the code to deal with these events. When an event occurs, the framework invokes the user's code. User code does not need to call the framework, the user program does not have to care about the framework structure, the execution process, the system-level API calls, etc., all of which are the framework responsible for completion. Therefore, middleware-based applications have good extensibility, manageability, high availability and portability.
The following is a brief introduction to several kinds of main middleware.
1. Remote Procedure Call
Remote procedure calls are a widely used method of distributed application processing. An application uses RPC to "remotely" execute a process that is located in a different address space, and is the same as performing local calls from the effect. In fact, an RPC application is divided into two parts: server and client. The server provides one or more remote procedures, and the client makes a remote call to the server. The server and client can be on the same computer, on different computers, or even on different operating systems. They communicate over the network. The corresponding stub and run support provides data conversion and communication services to mask different operating systems and network protocols. RPC traffic is synchronous here. A thread can make an asynchronous call.
In the RPC model, as long as the client and server have the appropriate RPC interface, and RPC run support, they can complete the corresponding interoperability, without limiting to the specific server. As a result, RPC provides strong support for Client/server distributed computing. At the same time, the remote procedure call RPC provides process-based service access, the client is directly connected to the server, there is no intermediary to process the request, and therefore has some limitations. For example, RPC usually requires some network details to locate the server, and when the client makes a request, the server must be active, and so on.
2. Message-oriented middleware
MOM refers to the use of efficient and reliable messaging mechanism for platform-independent data exchange, and based on data communication for the integration of distributed systems. By providing a messaging and Message Queuing model, it extends inter-process communication in a distributed environment and supports multiple communication protocols, languages, applications, hardware, and software platforms. At present, the popular MOM middleware products are IBM MQSeries, Bea Messageq and so on. Messaging and queuing technologies have the following three
Main Features:
The communication program can run the program at different times not directly to each other on the network, but indirectly put the message into the message queue, because there is no direct connection between the program. So they don't have to run at the same time. When a message is placed in the appropriate queue, the target program does not even need to be running at all, and even if the target program is running, it does not mean that the message is processed immediately.
The structure of the application is not constrained in complex applications, communication programs can be not only a one-to-one relationship, but also a pair of many and many-way, or even a combination of the above-mentioned methods. The construction of multiple communication methods does not add to the complexity of the application.
Program is isolated from network complexity
The program communicates messages into or out of the message queue, all activities associated with it, such as maintaining Message Queuing, maintaining relationships between programs and queues, processing network restarts, and moving messages across the network are Mom's tasks, and programs do not directly communicate with other programs. And they do not involve the complexity of network communication.
3. Object Request Agent
With the development of object technique and distributed computing technology, the combination of the two has formed the computing of distributed object, and developed into the mainstream of software technology nowadays. At the end of 1990, the object Management group OMG first introduced the object management structure OMA, Object Management Architecture, which is the core component of this model. Its role is to provide a communication framework that transparently transmits object requests in heterogeneous distributed computing environments. The CORBA specification includes all the standard interfaces of the Orb. CORBA 1.1, introduced in 1991, defines the interface Description language OMG IDL and the API that supports Client/server objects to interoperate on specific orbs. The CORBA 2.0 specification describes the interoperability between orbs provided by different vendors.
Object Request Agent (ORB) is the object bus, it is in the core position in CORBA specification, it is the basic mechanism of defining object transparently sending request and receiving response in heterogeneous environment, it is the middleware to establish the client/server relationship between objects. The Orb enables objects to transparently make requests to other objects or accept responses from other objects, which can be located locally or on a remote machine. The Orb intercepts the request invocation and is responsible for locating the object that can implement the request, transmitting the parameters, invoking the appropriate method, returning the result, and so on. The client object does not know the mechanism of communicating with the server object, activating or storing the server object, or knowing where the server object is located, what language it is implemented in, what operating system is used, or other system components that are not part of the object interface.
It is worth noting that the client and server roles are only used to coordinate interactions between objects, and depending on the occasion, the objects on the orb can be either client or server or even both. When an object makes a request, it is in the client role, and when it receives the request, it is in the server role. Most of the objects are both client roles and server roles. In addition, because the orb is responsible for the transfer of object requests and the management of the server, the client and server are not directly connected, so the orb can support a more complex structure than the simple client/server structure supported by RPC.
4, transaction processing monitoring
Transaction monitoring (Transaction processing monitors) is the first to appear on a mainframe, providing it with a reliable operating environment that supports large-scale transaction processing. With the development of distributed computing technology, distributed Application system puts forward the demand for large-scale transaction processing, such as a large number of critical transactions in commercial activities. Transaction processing monitoring interface between client and server for transaction management and coordination, load balancing, failure recovery, etc., to improve the overall performance of the system. It can be seen as the "operating system" of a transactional application. In general, transaction processing monitoring has the following features:
Process management, including starting the server process, assigning tasks to it, monitoring its execution, and balancing the load.
Transaction management, which guarantees the atomicity, consistency, independence and persistence of transactional processing under its supervision.
Communication Management provides a variety of communication mechanisms between client and server, including request response, session, queuing, subscription publishing, and broadcast.
Transaction monitoring can provide services to a large number of clients, such as airplane ticketing systems. If the server allocates the resources it needs for each client, the server will be overwhelmed (2). But in fact, not all clients need to request service at the same time, and once a client requests a service, it wants to get a quick response. Transaction monitoring provides a set of services on top of the operating system, manages client requests and assigns them the appropriate service processes, enabling the server to efficiently service large-scale customers with limited system resources.