PHP ?? ?? ?? ?? : PHP ??? ?? ????? ?? ??? ? ??? PHPUnit, Cucumber, Atoum, Selenium, Dusk, Kahlan ? PHP ??? ???? ?? ?? PHP ?? ?? ??? ????, ?? ?? ? ??? ? ?? ?? ?? ??? ?????. ?? PHPCI, Travisci, Semaphoreci ? Jenkins? ?? ???? ?? (CI) ???? ?? ???? ???? ???? ?? ??? ???? ???? ??? ? ????? ?????.
(? ???? ??? 2017 ? 6 ? 30 ?? ?? ?? ? ??? ????? ?????????.) ??? ??? ????? ???? ???? ??????? (TDD (Test-Driven Development)? ?? ??. ??? ??? PHP ??? ??? ???? ????? ?????! PHP? ???? ?? ???? ????? ?? ??? ?? ?? ??? ????? ?????!
? ??? ?? ???? ??? ??? ??? ? ??? 2017 ? ?? ?? ??? ?? ??? ????? ?????????.
????? ?? ??? ?? ?????. <em>
</em>
??
??? ??? ???? ?? ???? ?????? ??? ?????. ??? ???? ???? ?? ??? ?? ??? ?? ? ???? ?????. ??? ?? PHP ??? Behat???.
??? ???? itepoint? ???? ?? ?? ???? ????. ???? ?? ? ?? ?? ??? ??? ??? ??? ????? ? ?????.
atoum
ATOUM? PHP? ? ?? ?? ??? ??? ?????. GitHub, Composer ?? Phar ExecutaBles? ?? ??? ??? ??? ??????.
???
<code>Feature: Listing command
In order to change the structure of the folder I am currently in
As a UNIX user
I need to be able see the currently available files and folders there
Scenario: Listing two files in a directory
Given I am in a directory "test"
And I have a file named "foo"
And I have a file named "bar"
When I run "ls"
Then I should get:
"""
bar
foo
"""</code>
??? ??? ???? :
PHPUNIT ? SELENIUM?? ????? ?? ?? ??? ?? ???? ??? ??? ?? ? ????.
?? <code>$this->integer($classInstance->myMethod())
->isEqualTo(10);
$this->string($classInstance->myMethod())
->contains("Something heppened");
</code>
Laravel? ??? ? ?? ???? ??? ?????. ????? (Chromedriver? ????) ?? ???? ?? ??? ? ????. ?? ??, ?? ???, ??? ??? ?? ?? ?? ??? ???? ??? ???? ?? API? ????. ??? ?? ??? ????.
???? ?? ??? ?????? ????? ??? ? ????.
Kahlan
Kahlan? ?? -IT ??? ???? ??? ?? ?? ? BDD ??? ??? ?????.
<code>composer require --dev phpunit/phpunit
composer require --dev phpunit/phpunit-selenium
</code>
? ???? ? ? ??? Behat ???? ?????. Kahlan? ???, ?? ?? ??,?? ?? ????? ???? ??? ? ?????? ?????.
php_testability
?? ? ??? ???? PHP ??? ??????. ????? ??? ? ??? ?? ???? ??? ???? ???? ?? ?? ?????.
????? ?? ?? ? ??? ?? ??? ??? ?? ?? ???? ??? ? ????. ???? ?? ??? ? ????
?? ?? ??? ?? ??????
???? ?? (CI) ???
??? ???? ?? ?? ?? ?? ? ??? ??? ??? ????? ?? ???? ???? ?? ??? ???? ???? ?????. ?? ??? CI ???/??? ???? ??? ??? ? ???? ??? ????? ??? ???? ?? ? ? ??????.
?? ?? ??? ???? ?? ???? ??? ?? ?? ??? ??? ?? ????.
PHPCI : (?? ??) ?? ??. <code>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
{
public function testFormSubmissionWithUsername()
{
$this->byName('username')->value('name');
$this->byId('subscriptionForm')->submit();
}
}
</code>
travisci : (?? ?? ???? ??) ?? ??.
semaphoreci : (?? ?? ???? ??) ?? ??.
jenkins : ??? ??. <code>class LanguagesControllerTest extends DuskTestCase
{
public function testCreate()
{
$this->browse(function (Browser $browser) {
$user = $this->getAdminUser();
$browser->loginAs($user)
->visit('/panel/core/languages')
->click('#add')
->assertPathIs('/panel/core/languages/create')
->type('name', 'Arabic')
->select('direction', 'rtl')
->press('Submit')
->assertSee('Language: Arabic')
->assertSee('ar')
->assertSee('rtl')
->assertSee('Language created');
});
}
}
</code>
??
??? ??? ???? ?? ???? ???? ??? ?? ????. ??? ??? ???? ????????! ?? ??? ???? ???? ???? ? ??????.
?? ??? ?? ??? ?????? ??? ??? ?????? ??? ??? ??? ???? ?? ??? ?? ??? ??????!
PHP ?? ?? ?? (FAQ)? ?? ?? ????
PHP ?? ?? ??? ??? ? ?? ?? ??? ????????
PHP ?? ?? ??? ??? ? ? ?? ?? ??? ???????. ??,? ??? ?? ?? ??? ?? ? ? ?????, ???? ????? ???? ?? ??? ??, ?? ?? ??? ?? ??? ?? ?? ??? ???? ?? ?????. ??,? ??? ?? ??? ?? ??? ????? ????? ??? ? ??? ??? ??? ?? ??? ??? ??? ???????. ?? ??? ????? ?? ?? ?? ?? (?? ??? ?? ??) ? ???? ??? ???? (?? ???? ?? ??? ?? ?? ??? ????? ??).
PHP ?? ?? ??? ? ?? ????? ???? ??? ?? ?????
PHP ?? ?? ??? ??? ?? ??? ??? ???? ?? ??? ????? ?? ????? ???? ?? ???? ? ????. ?? ??, ?? ?? ??? ??? ?? ? ?? ?? ??? ???? ???? ??? ???? ???? ?? ??? ?? ? ? ????. ?????, ?? ??? ??? ??? ?? ??? ?? ??? ???? ????? ? ? ???? ???? ?? ???? ?? ? ? ??? ? ? ????. ?? ?? ??? ? ?? ????? ?? ??? ??? ?? ? ? ????.
?? ?? PHP ?? ?? ??? ?????
?, ?? ?? ?? PHP ?? ?? ??? ????. ???? php_codesniffer (??? ??? ?? ??? ??) (?? ??? ??? ??) (??, ??? ? ???? ??? ???? ?? ??? ??). ? ??? ??? ??? ? ??? ?? ??? ?? ??? ?? ? ? ????.
(?? FAQ ??? ???? ?? ???? ?? ??? ???? ?? ?? ???? ???? ? ???? ????? ????.)
<code>$this->integer($classInstance->myMethod()) ->isEqualTo(10); $this->string($classInstance->myMethod()) ->contains("Something heppened"); </code>
<code>composer require --dev phpunit/phpunit composer require --dev phpunit/phpunit-selenium </code>
????? ?? ?? ? ??? ?? ??? ??? ?? ?? ???? ??? ? ????. ???? ?? ??? ? ????
<code>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase { public function testFormSubmissionWithUsername() { $this->byName('username')->value('name'); $this->byId('subscriptionForm')->submit(); } } </code>travisci : (?? ?? ???? ??) ?? ??.
<code>class LanguagesControllerTest extends DuskTestCase { public function testCreate() { $this->browse(function (Browser $browser) { $user = $this->getAdminUser(); $browser->loginAs($user) ->visit('/panel/core/languages') ->click('#add') ->assertPathIs('/panel/core/languages/create') ->type('name', 'Arabic') ->select('direction', 'rtl') ->press('Submit') ->assertSee('Language: Arabic') ->assertSee('ar') ->assertSee('rtl') ->assertSee('Language created'); }); } } </code>
??
PHP ?? ?? ??? ??? ? ? ?? ?? ??? ???????. ??,? ??? ?? ?? ??? ?? ? ? ?????, ???? ????? ???? ?? ??? ??, ?? ?? ??? ?? ??? ?? ?? ??? ???? ?? ?????. ??,? ??? ?? ??? ?? ??? ????? ????? ??? ? ??? ??? ??? ?? ??? ??? ??? ???????. ?? ??? ????? ?? ?? ?? ?? (?? ??? ?? ??) ? ???? ??? ???? (?? ???? ?? ??? ?? ?? ??? ????? ??).
PHP ?? ?? ??? ? ?? ????? ???? ??? ?? ?????
PHP ?? ?? ??? ??? ?? ??? ??? ???? ?? ??? ????? ?? ????? ???? ?? ???? ? ????. ?? ??, ?? ?? ??? ??? ?? ? ?? ?? ??? ???? ???? ??? ???? ???? ?? ??? ?? ? ? ????. ?????, ?? ??? ??? ??? ?? ??? ?? ??? ???? ????? ? ? ???? ???? ?? ???? ?? ? ? ??? ? ? ????. ?? ?? ??? ? ?? ????? ?? ??? ??? ?? ? ? ????.
? ??? 8 PHP ?? ?? ??? ??????? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

PHP ?? ??? ?? ???? ?? ? ????? ??? ?????. 1. ?? ??? ??? ??? ??? ? ? ??? ??? ??? ?? ?? ??? ???? ???????. 2. ?? ??? ???? ???? ? ?? ????? ?? ?? ?? ??? ?????. 3. $ _get ? $ _post? ?? Hyperglobal ??? ?? ???? ?? ??? ? ??? ??? ??????? ???????. 4. ?? ?? ?? ???? ?? ?? ?? ??? ?????? ?? ??? ??? ?? ??? ???????. ??? ??? ????? ??? ??? ?? ???? ????? ? ??? ? ? ????.

PHP ?? ???? ???? ????? ?? ? ??? ???? ?? ?? ? ??? ???? ?? ??? ?????? ??? ??? ? ? ???????. 1. ??? ?? CSRF? ???? ?? ??? ??? ???? ?????? ??? ???? FINFO_FILE? ?? ?? MIME ??? ?????. 2. ??? ??? ??? ???? ??? ?? ??? ?? ? WEB ????? ??? ???? ??????. 3. PHP ?? ??? ?? ? ?? ???? NGINX/APACHE? ??? ????? ?? ???? ?????. 4. GD ?????? ??? ? ?? ???? ??? ?? ??? ?? ????.

PHP ?? ???? ? ?? ???? ??? ????. 1. // ?? #? ???? ? ?? ??? ???? // ???? ?? ????. 2. ?? /.../ ?? ?? ?? ??? ????? ?? ? ?? ??? ?? ? ? ????. 3. ?? ?? ?? / if () {} /? ?? ?? ??? ????? ??? ?? ?? ?? ??? ???? ????? ???? ??? ?? ???? ???? ??? ? ??? ??????.

Ageneratorinphpisamemory- ???? Way-Erate-Overgedatasetsetsbaluesoneatimeatimeatimeatimallatonce.1.generatorsuseTheyieldKeywordTocroadtOpvaluesondemand, RetingMemoryUsage.2

PHP ??? ???? ??? ??? ??? ????? ????. ??? ????? ?? ???? ??? "?? ? ?"??? "?"? ???????. 1. ??? ? ??? ??? DocBlock (/*/)? ?? ?? ??? ???? ??? ? ?? ???? ??????. 2. JS ??? ???? ?? ???? ??? ?? ??? ??? ?????. 3. ??? ?? ?? ?? ??? ???? ????? ????? ???? ?? ????? ???? ? ??????. 4. Todo ? Fixme? ????? ???? ? ? ??? ??? ???? ?? ?? ? ??? ???????. ??? ???? ?? ??? ??? ?? ?? ?? ???? ???? ? ????.

toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1. ??, downloadandinstallxAmpp, selectComponents, startApache ? placefilesinhtdocs.2

PHP??? ???? ??? ?? ?? ????? ???? ??? ?? ??? ??? ?? ? ??? ??? ???? ?????. ???? 0?? ???? ?? ??? ???? ? ?? ???? ?? ?? ? ? ????. MB_SUBSTR? ?? ??? ??? ???????. ? : $ str = "hello"; echo $ str [0]; ?? H; ??? MB_SUBSTR ($ str, 1,1)? ?? ??? ??? ??? ??????. ?? ???????? ???? ??? ???? ?? ???? ?? ?? ???? ?????? ??? ????? ?? ??? ?? ??? ???? ???? ?? ????.

tolearnpheffectical, startBysetTupaloCalserErverEnmentUsingToolslikexamppandacodeeditor -likevscode.1) installxamppforapache, mysql, andphp.2) useacodeeditorforsyntaxsupport.3)) 3) testimplephpfile.next, withpluclucincludechlucincluclucludechluclucled
