Aliasing utility class method in extended class
I'm not a fan of the UtilityClass. Here's some examples:


It breaks the single responsibility principle as it is not focused on solving a specific problem.
UtilityClass:trimText() conveys too little context about what it does, and the result of calling the method is unexpected. UtilityClass::trimText() would better suit the problem with signature like UtilityClass:shortenTextTo($text, $length);
UtilityClass::formatNumber() is not specific enough to explain clearly what it does. How does it format the number?


UtilityClass:trimText() seems like a good fit for a static helper. The problem you are trying to solve looks visual, and you should try to convey that. Look at the following:

class Text {
    public static function shortenTo($text, $length) {
        return substr(trim($text), 0, $length);
    }
}

// Html
&lt;article&gt;
    &lt;h1&gt;My awesome blogpost!&lt;/h1&gt;
    &lt;p&gt;&lt;?= Text::shortenTo($text, 100); ?&gt;&lt;/p&gt;
&lt;/article&gt;


Now you have a utility for shortening a text to the wanted length.



Your session class also deals with the wrong problem. A session class would represent a Session (i.e a value object) or handle actual session management, but it wouldn't set permissions. An Authenticator class could use a SessionManager to assign specific permissions TO a session, but Sessions should have no understanding of what permissions are. 

Hope that gives you something to work on. Your code is not horrible, but it seems to not focus on solving the right problems in the right places. The point of object-orientation is to represent code in realistic, understandable models, and your code does not do that at the moment. Focus on what a Session represents. What actions should you be able to do with a Session object?