include::../rule.adoc[]

For example, with the default provided regular expression ``++^[a-z][a-zA-Z0-9]*$++``, the function:

[source,php,diff-id=1,diff-type=noncompliant]
----
function DoSomething(){ // Noncompliant
    // ...
}
----

should be renamed to

[source,php,diff-id=1,diff-type=compliant]
----
function doSomething(){
    // ...
}
----

In case the Drupal framework is detected and the default regex is not replaced, it will follow the PHP coding standards for Drupal.

[source,php,diff-id=2,diff-type=noncompliant]
----
function doSomething(){ // Noncompliant
    // ...
}
----

should be renamed to

[source,php,diff-id=2,diff-type=compliant]
----
function do_something(){
    // ...
}
----

=== Exceptions

Methods with an ``++@inheritdoc++`` annotation, as well as magic methods (``++__construct()++``, ``++__destruct()++``, ``++__call()++``, ``++__callStatic()++``, ``++__get()++``, ``++__set()++``, ``++__isset()++``, ``++__unset()++``, ``++__sleep()++``, ``++__wakeup()++``, ``++__toString()++``, ``++__invoke()++``, ``++__set_state()++``, ``++__clone()++``, ``++__debugInfo()++``) are ignored.


[source,php]
----
function __construct(){...} // Compliant by exception
function __destruct(){...}  // Compliant by exception

/**
 * {@inheritdoc}
 */
function myFunc(){...}      // Compliant by exception
----

== References

* https://www.drupal.org/docs/develop/standards/php/php-coding-standards#s-functions-and-variables[Drupal - Naming Conventions - Functions and variables]

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

=== Parameters

.format
****

----
^[a-z][a-zA-Z0-9]*$
----

Regular expression used to check the [method|function|subroutine] names against
****


'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

endif::env-github,rspecator-view[]
