You need to sign in or sign up before continuing.
  • Dylan William Hardison's avatar
    Synthesis #1: Adopt utf8mb4 and DBIx::Connector (#79) · 1015a17e
    Dylan William Hardison authored
    * use base to make merging with bmo easier
    
    * Revert "Bug 1497042 - Enclose table names in CREATE queries"
    
    This reverts commit 62d5637a.
    
    * refactor Bugzilla::DB to not subclass DBI
    
    * use DBIx::Connector to manage database connections
    
    * Ensure we always call DBIx::Connector->dbh before any DBI method
    
    The code didn't allow a way of doing this without a lot of work.
    
    So I had to take the following approach:
    The 'dbh' attribute is now a method that delegates to DBIx::Connector's dbh
    method. Per the docs, ->dbh() "Returns the connection's database handle. It will
    use a an existing handle if there is one, if the process has not been forked or
    a new thread spawned, and if the database is pingable. Otherwise, it will
    instantiate, cache, and return a new handle."
    
    Then there is the matter of the 'handles' on dbh. I've used Package::Stash to
    insert proxy methods into the class when it is loaded.
    
    * Bug 1328659 - Add support for utf8=utf8mb4 (switches to dynamic/compressed row format, and changes charset to utf8mb4)
    
    * add deps
    
    * add prepare_cached to the list of delegated methods.
    
    This was added in bug 340160
    
    * improve the migration to compressed/dynamic rows, skip views
    
    * add missing semicolon
    
    * remove pre-utf8mb4 emoji support
    
    * fix small issue
    
    * add debugging fatal error
    1015a17e
Lang.pm 1.05 KB
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.

package Bugzilla::User::Setting::Lang;

use 5.10.1;
use strict;
use warnings;

use base qw(Bugzilla::User::Setting);

use Bugzilla::Constants;

sub legal_values {
  my ($self) = @_;

  return $self->{'legal_values'} if defined $self->{'legal_values'};

  return $self->{'legal_values'} = Bugzilla->languages;
}

1;

__END__

=head1 NAME

Bugzilla::User::Setting::Lang - Object for a user preference setting for preferred language

=head1 DESCRIPTION

Lang.pm extends Bugzilla::User::Setting and implements a class specialized for
setting the preferred language.

=head1 METHODS

=over

=item C<legal_values()>

Description: Returns all legal languages
Params:      none
Returns:     A reference to an array containing the names of all legal languages

=back