Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/m1/env/src/Parser/KeyParser.php
<?php

/**
 * This file is part of the m1\env library
 *
 * (c) m1 <hello@milescroxford.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package     m1/env
 * @version     2.0.0
 * @author      Miles Croxford <hello@milescroxford.com>
 * @copyright   Copyright (c) Miles Croxford <hello@milescroxford.com>
 * @license     http://github.com/m1/env/blob/master/LICENSE.md
 * @link        http://github.com/m1/env/blob/master/README.md Documentation
 */

namespace M1\Env\Parser;

use
M1\Env\Exception\ParseException;

/**
 * The key parser for Env
 *
 * @since 0.2.0
 */
class KeyParser extends AbstractParser
{
   
/**
     * Parses a .env key
     *
     * @param string $key The key string
     *
     * @throws \M1\Env\Exception\ParseException If key contains a character that isn't alphanumeric or a _
     *
     * @return string|false The parsed key, or false if the key is a comment
     */
   
public function parse($key)
    {
       
$key = trim($key);

        if (
$this->parser->string_helper->startsWith('#', $key)) {
            return
false;
        }

        if (!
ctype_alnum(str_replace('_', '', $key)) || $this->parser->string_helper->startsWithNumber($key)) {
            throw new
ParseException(
               
sprintf('Key can only contain alphanumeric and underscores and can not start with a number: %s', $key),
               
$key,
               
$this->parser->line_num
           
);
        }

        return
$key;
    }
}