add Collection and Student and classes
This commit is contained in:
commit
436554faf7
51
Collection.php
Normal file
51
Collection.php
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
class Collection implements Iterator {
|
||||
private int $cursor = 0;
|
||||
|
||||
public function __construct(
|
||||
private array $items = []
|
||||
) {}
|
||||
|
||||
#[ReturnTypeWillChange]
|
||||
public function current(): int
|
||||
{
|
||||
return $this->items[$this->cursor];
|
||||
}
|
||||
#[ReturnTypeWillChange]
|
||||
public function key(): int
|
||||
{
|
||||
return $this->cursor;
|
||||
}
|
||||
|
||||
#[ReturnTypeWillChange]
|
||||
public function next(): void
|
||||
{
|
||||
++$this->cursor;
|
||||
}
|
||||
|
||||
#[ReturnTypeWillChange]
|
||||
public function prev(): int {
|
||||
--$this->cursor;
|
||||
}
|
||||
|
||||
public function rewind(): void {
|
||||
$this->cursor = 0;
|
||||
}
|
||||
|
||||
public function valid(): bool
|
||||
{
|
||||
return isset($this->items[$this->cursor]);
|
||||
}
|
||||
}
|
||||
|
||||
// Adding an array [1,2,3,4,5,6,7,8,9,10] to the collection
|
||||
$collection = new Collection([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
|
||||
|
||||
// Calculating the sum of the elements in the collection
|
||||
$sum = 0;
|
||||
foreach ($collection as $item) {
|
||||
$sum += $item;
|
||||
}
|
||||
|
||||
echo "The sum of the elements in the collection is: $sum\n";
|
||||
177
README.md
Normal file
177
README.md
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
**Test tasks**
|
||||
|
||||
** \
|
||||
Сollections**
|
||||
|
||||
You need to write a collection class (which can be used in a foreach construct). The class inherits the iterator interface, that is, it necessarily implements methods:
|
||||
|
||||
|
||||
|
||||
* __construct(array $items),
|
||||
* prev,
|
||||
* next,
|
||||
* current,
|
||||
* rewind (method rewind returns a pointer to the first element of the collection).
|
||||
|
||||
Add an array [1,2,3,4,5,6,7,8,9,10] to the collection.
|
||||
|
||||
In the loop, run through the collection and calculate the sum of the elements.
|
||||
|
||||
**Students & classes**
|
||||
|
||||
There are tables:
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>id
|
||||
</td>
|
||||
<td>First name
|
||||
</td>
|
||||
<td>Last name
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1
|
||||
</td>
|
||||
<td>Bob
|
||||
</td>
|
||||
<td>Biden
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2
|
||||
</td>
|
||||
<td>Joey
|
||||
</td>
|
||||
<td>Johnsen
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3
|
||||
</td>
|
||||
<td>Mike
|
||||
</td>
|
||||
<td>Buffollo
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
Classes:
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>id
|
||||
</td>
|
||||
<td>title
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1
|
||||
</td>
|
||||
<td>A
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2
|
||||
</td>
|
||||
<td>B
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
Students_Classes
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>id
|
||||
</td>
|
||||
<td>class_id
|
||||
</td>
|
||||
<td>student_id
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1
|
||||
</td>
|
||||
<td>1
|
||||
</td>
|
||||
<td>1
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2
|
||||
</td>
|
||||
<td>1
|
||||
</td>
|
||||
<td>2
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3
|
||||
</td>
|
||||
<td>2
|
||||
</td>
|
||||
<td>3
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
You need to write a SQL query that displays the id of the class, its name and the number of students in the class, that is:
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>id
|
||||
</td>
|
||||
<td>title
|
||||
</td>
|
||||
<td>student_count
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
#### **API Development**
|
||||
|
||||
**Task:** Create a simple REST API endpoint in PHP that returns a JSON response with a list of users from the `users` table.
|
||||
|
||||
**Additional Test tasks**
|
||||
|
||||
**Basic Node.js Knowledge**
|
||||
|
||||
Create a Node.js application that serves a simple webpage. The webpage should display a list of users fetched from a JSON file.
|
||||
|
||||
**Basic Understanding of Server Software (Apache, Nginx)**
|
||||
|
||||
Write a basic configuration for an Nginx server with https redirect that serves a PHP application.
|
||||
|
||||
**Basic Understanding of Linux Servers**
|
||||
|
||||
This task will assess your fundamental knowledge of Linux server management, including basic command-line operations, file system navigation, user management, and basic network configuration. Give the list of bash commands for each subtask.
|
||||
|
||||
|
||||
### **Task Instructions:**
|
||||
|
||||
|
||||
|
||||
1. **Connecting to a Linux Server:**
|
||||
* Use SSH to connect to a remote Linux server. Assume the server's IP address is `192.168.1.10` and the SSH port is the default one.
|
||||
2. **File System Navigation:**
|
||||
* Once connected, navigate to the `/var/log` directory.
|
||||
* List all files and directories within `/var/log` and save the output to a file named `log_list.txt` in your home directory.
|
||||
3. **User Management:**
|
||||
* Create a new user named `testuser` without a home directory.
|
||||
4. **File Permissions:**
|
||||
* Create a directory named `testdir` in your home directory.
|
||||
* Change the permissions of `testdir` to allow read, write, and execute access only to the owner.
|
||||
5. **Basic Network Configuration:**
|
||||
* Display the current network configuration, including IP addresses and network interfaces.
|
||||
6. **Package Management:**
|
||||
* Update the package list on the server and install the `curl` package.
|
||||
10
StudentAndClasses.sql
Normal file
10
StudentAndClasses.sql
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
SELECT
|
||||
c.id,
|
||||
c.title,
|
||||
COUNT(sc.student_id) AS student_count
|
||||
FROM
|
||||
Classes c
|
||||
LEFT JOIN
|
||||
Students_Classes sc ON c.id = sc.class_id
|
||||
GROUP BY
|
||||
c.id, c.title;
|
||||
Loading…
Reference in New Issue
Block a user